[Overthewire] – Natas12

Link : http://natas12.natas.labs.overthewire.org/

Username : natas12

Password : EDXp0pS26wLKHZy1rDBPUZk0RKfLGIR3

Pertama diberikan sebuah tampilan

Nampaknya kita bisa melakukan upload sebuah file JPEG yang maksimum hanya berukuran 1KB

Penulis langsung berpikir ini adalah challenge mendapatkan shell dengan unrestricted file upload, tetapi untuk lebih jelasnya mari kita membuka source code yang diberikan

Source code yaitu

Mari kita telaah alur script php yang disediakan. Pertama kita akan melakukan upload file secara post yang akan dilakukan pengecekan jika ukurannya lebih dari 1kb maka akan ada peringatan file too big, jika tidak maka file akan diterima.

Terdapat sebuah variabel target_path yang menyimpan function bercabang makeRandomPathFromFilename dan makeRandomPath

Function makeRandomPathFromFilename akan melakukan pengecekan kepada extension dari file yang di upload yang defaultnya adalah jpeg dan passing value dir dan ext ke makeRandomPath

Function makeRandomPath bertugas mereturn sebuah value tempat file akan disimpan di directory upload

upload/(random string berjumlah sepuluh character dari list alphanumeric).jpeg

Untuk menyelesaikan challenge ini kita bisa melakukan unrestricted file upload, secara singkatnya kita akan mengupload file .php yang berisi command yang kita ingin lakukan saat kita mengakses dan load file php tersebut.

Kita akan menginginkan password natas13 sehingga kita bisa membuat sebuah file php yang berisikan

Tetapi saat kita melakukan file upload, nama file kita akan diganti menjadi random string dan file extension akan menjadi jpeg secara default. Mari kita gunakan burpsuite untuk meng intercept file yang akan dikirim dan setelah melewati verifikasi front end, maka file dapat masuk tanpa gangguan lebih lanjut.

Upload file

 

Mari kita ganti lagi nama filenya menjadi shell.php dan forward

Terdapat sebuah link menuju file kita tadi, mari kita access

Berhasil ! Password untuk natas13 adalah jmLTY0qiPZBbaKc9341cqPQZBJv7MQbY

Leave a Reply

Your email address will not be published. Required fields are marked *