Laporan VAPT | Portwigger | Acces Control, Business Logic, Path Traversal, Authentication, Information Disclosure|

Selaaputri
11 min read2 days ago

A. Executive Summary

Dalam laporan ini, ada enam Lab keamanan utama yang akan di jelaskan dalam pengujian Kerantanan Lab PortSwigger:

  1. Authentication | Broken brute-force protection, multiple credentials per request (Expert)

Waktu Pelaksanaan : 15 Juni 2024

Lab ini menyoroti kerentanan dalam proteksi brute-force yang rusak, di mana aplikasi tidak membatasi jumlah percobaan login yang gagal. Selain itu, kemungkinan juga ada multiple credentials per request yang memungkinkan penyerang untuk menguji banyak kombinasi username dan password secara bersamaan.

2. File Upload | Web shell upload via obfuscated file extension (Practitioner)

Waktu Pelaksanaan : 15 Juni 2024

Lab ini menunjukkan bagaimana penyerang dapat memanfaatkan upload file untuk mengunggah shell web (web shell) dengan menggunakan ekstensi file yang diobfuskasi/disamarkan. Ini dapat memungkinkan penyerang untuk menjalankan perintah di server atau mengambil alih kontrol sepenuhnya.

3. Access Control |Unprotected admin functionality (Apprentice)

Waktu Pelaksanaan : 16 Juni 2024

Lab ini menyoroti kerentanan di mana fungsi administrasi yang tidak dilindungi dengan baik dapat diakses oleh pengguna yang tidak memiliki otorisasi yang tepat. Hal ini dapat mengakibatkan akses tidak sah ke fungsionalitas penting aplikasi.

4. Business Logic | Insufficient workflow validation (Practitioner)

Waktu Pelaksanaan : 16 Juni 2024

Lab ini mungkin mengilustrasikan bagaimana kelemahan dalam validasi alur kerja (workflow) aplikasi dapat dimanfaatkan untuk melakukan tindakan yang tidak diizinkan atau untuk mengubah urutan operasi aplikasi secara tidak sah.

5. Path Traversal | File path traversal, validation of start of path (Practitioner)

Waktu Pelaksanaan : 16 Juni 2024

Lab ini berfokus pada kerentanan Path Traversal, khususnya pada validasi awal dari jalur file yang tidak memadai. Kerentanan ini terjadi ketika aplikasi web tidak memverifikasi atau membatasi jalur file yang dapat diakses oleh pengguna dengan benar. Dengan mengeksploitasi kerentanan ini, seorang penyerang dapat mengakses file dan direktori yang seharusnya tidak dapat diakses, seperti file konfigurasi, data sensitif, atau bahkan file sistem.

6. Information Disclosure | Source code disclosure via backup files (Apprentice)

Waktu Pelaksanaan : 16 Juni 2024

Lab ini mungkin menyoroti cara di mana pengungkapan informasi sensitif, seperti kode sumber aplikasi, dapat terjadi melalui file cadangan (backup files) yang tidak diatur dengan baik. Penyerang dapat memanfaatkan akses ke file ini untuk memahami lebih dalam tentang implementasi aplikasi dan menemukan kerentanan potensial.

B. Key Findings

  1. Authentication | Broken brute-force protection, multiple credentials per request (Expert)

2. File Upload | Web shell upload via obfuscated file extension (Practitioner)

3. Access Control |Unprotected admin functionality (Apprentice)

4. Business Logic | Insufficient workflow validation (Practitioner)

5. Path Traversal | File path traversal, validation of start of path (Practitioner)

6. Information Disclosure | Source code disclosure via backup files (Apprentice)

C. Full Pen Test Results

  1. Authentication | Broken brute-force protection, multiple credentials per request (Expert)

Untuk menyelesaikan lab, dapat melakukan brute-force terhadap pasword Carlos. dan Pada Petunjuk lab, diberikan list password yang nantinya dapat digunakan untuk melakukan bruteforce.

Tampilan awal jika mengakses Lab nya

Setelah mengakses lab nya, kita dapat melakukan login untuk mendapatkan request intercept, login dapat di isi terserah, login dilakukan hanya untuk permintaan ke server.

Setelah berhasil login, langkah selanjutnya adalah membuka Burp Suite dan mengakses menu proxy. Kemudian, arahkan ke HTTP history untuk menemukan permintaan yang telah dilakukan pada lab sebelumnya. Setelah menemukannya, kita dapat mengirimnya ke repeater untuk mengulangi uji coba dan memvalidasi hasilnya.

Setelah itu, pada bagian “username, password”, kita dapat menggantinya dengan daftar yang sebelumnya kita dapatkan dari petunjuk lab. Untuk memudahkan eksekusi, kita perlu mengubah daftar tersebut ke dalam format JSON. Jika sudah send untuk melihat hasil.

Jika responsenya sesuai dengan yang terlihat di gambar di bawah ini, itu berarti proses telah berhasil dilakukan. Untuk menyelesaikan lab ini, langkah selanjutnya adalah dengan mengklik kanan, lalu pilih “request in browser”, kemudian “in original session”.

setelah itu maka akan muncul pemberitauan untuk URL nya, jika pemberitauan nya sudah muncul dapat mengcopy URL yang telah di berikan setelah itu paste pada halaman lab nya, dan lab pun berhasil diselesiakan.

2. File Upload | Web shell upload via obfuscated file extension (Practitioner)

Untuk menyelesaikan lab “File Upload | Web Shell Upload via Obfuscated File Extension (Practitioner)”, terdapat beberapa petunjuk yang diberikan. Dalam lab ini, tempat upload file sudah dilengkapi dengan filter untuk mencegah upload file berbahaya. Namun, masih ada kerentanan yang bisa dieksploitasi. Kerentanan ini memungkinkan kita untuk mengunggah web shell dengan menggunakan ekstensi file yang disamarkan.

Setelah mengetahui bentuk kerentanannya, langkah selanjutnya adalah mengakses lab. Tampilan awal lab akan seperti berikut:

Setelah itu, login menggunakan username dan password yang telah diberikan pada petunjuk sebelumnya. Jika login berhasil, akan tertampil tampilan seperti pada gambar di bawah ini. Pada halaman ini, terdapat opsi untuk memperbarui email dan mengunggah avatar atau foto profil. Di sinilah dapat mencoba mengeksploitasi kerentanannya

Sebelumnya, mari kita mencoba untuk mengunggah gambar terlebih dahulu. Hal ini bertujuan untuk mengetahui jenis ekstensi file yang dapat diterima oleh fitur unggah avatar. Setelah mencoba mengunggah gambar, sistem memberikan pemberitahuan bahwa “The file avatars/img.png has been uploaded,” yang menunjukkan bahwa sistem hanya menerima file dengan ekstensi .img dan .png saja.

Sekarang, mari kita buat file exploit.php dan mencoba mengunggahnya. Sesuai dengan instruksi sebelumnya, kita akan membuat file exploit.php yang akan membaca dan menampilkan isi dari file ‘/home/carlos/secret’.

Sekarang coba unggah file tersebut agar mendapatkan rekaman history di Burp Suite. Setelah mencoba mengunggahnya, langkah selanjutnya adalah membuka Burp Suite dan mengakses menu proxy. Kemudian, arahkan ke HTTP history dan cari permintaan yang telah dilakukan pada lab sebelumnya. Setelah menemukannya, dapat mengirimnya ke Intruder untuk melanjutkan eksploitasi. setelah di intruder highligh file name nya setelah itu kita send to repeater

Saat di repeater, Anda dapat mengubah nama file menjadi exploit.php%00.jpg. Pastikan untuk memanfaatkan kerentanan ini dengan memasukkan karakter "NULL (%00)" setelah ekstensi file. Setelah berhasil mengubah nama file, Anda dapat mengirim ulang permintaan untuk melihat hasilnya.

ketika response telah menunjukan keberhasilan, mari lihat bagaimana tampilan website nya, jika telah berhasil memasukan file exploit nya.

Sekarang, perhatikan hasil eksploitasi dengan mencari file exploit.php di direktori files/avatars/ untuk menampilkan isinya. Pada langkah ini, pastikan bahwa file exploit.php yang telah diunggah sebelumnya dieksekusi dengan sukses oleh server.

Keberhasilan eksploitasi akan menghasilkan sebuah kode yang harus kita submit sebagai solusi. Setelah mendapatkan kode tersebut, kita bisa langsung mengirimkan solusi untuk menyelesaikan lab ini.”

3. Access Control |Unprotected admin functionality (Apprentice)

Untuk mengeksploitasi kelemahan pada fungsi admin yang tidak terlindungi guna memperoleh akses ke halaman admin, langkah-langkah berikut menjelaskan proses mengganti bagian /robots.txt dalam URL

Biasanya, masalah Broken Access Control terjadi melalui URL yang memungkinkan pengguna mengakses file atau halaman yang mengandung informasi sensitif dari situs web. Langkah pertama saya adalah mencari file robots.txt

File robots.txt digunakan untuk memberi petunjuk pada mesin pencari seperti Google tentang halaman-halaman yang tidak boleh diindeks. Dalam file ini, kadang kala terdapat informasi sensitif yang dapat diakses jika URL-nya dimasukkan secara langsung

Dari informasi yang ditemukan dalam file robots.txt, saya kemudian mengakses halaman admin langsung dengan mengetikkan URL berikut:

Setelah mengakses URL tersebut, halaman admin akan terbuka seperti yang ditunjukkan pada gambar di bawah ini. Dengan cara ini, maka berhasil mengakses panel admin yang seharusnya dilindungi, mengindikasikan adanya kerentanan serius dalam Broken Access Control pada situs web tersebut. Kerentanan ini memungkinkan pengguna yang tidak berwenang untuk mengakses dan mungkin mengontrol fungsi admin, sehingga meningkatkan risiko keamanan yang signifikan.

Untuk menyelesaikan tugas lab ini, langkah terakhir adalah menghapus user carlos. Setelah berhasil menghapusnya, tugas lab akan diselesaikan seperti yang ditunjukkan dalam gambar di bawah ini.

4. Business Logic | Insufficient workflow validation (Practitioner)

Pada lab ini, fokus utamanya adalah pada kelemahan Business Logic, khususnya pada validasi workflow yang tidak memadai. Kerentanan ini sering kali memungkinkan serangan yang memanfaatkan logika bisnis yang tidak cukup diuji atau divalidasi secara ketat dalam aplikasi web. Dalam instruksi ini, kita diminta untuk login sebagai pengguna “wiener”, dan dari situ, kita akan mengeksplorasi dan mengeksploitasi cara-cara di mana aplikasi mungkin tidak memvalidasi langkah-langkah atau proses tertentu dengan benar, sehingga memungkinkan pengguna untuk melakukan aksi yang tidak seharusnya dilakukan

Langkah pertama adalah login sebagai “wiener” menggunakan kredensial yang diberikan. Setelah login, perhatikan saldo akun yang ditampilkan, saldo awal adalah $100.

Kemudian, coba beli barang dengan harga di bawah $100 untuk memanipulasi langkah-langkah selanjutnya. Selesaikan pesanan tersebut hingga saldo berkurang.

Selanjutnya, buka Burp Suite dan cari di history untuk menemukan konfirmasi order yang baru saja dilakukan. Setelah menemukan permintaan konfirmasi order, kirimkan (send) permintaan tersebut ke Repeater.

Kembali ke halaman web dan cari produk yang harganya di atas saldo yang tersisa. Ketika hendak melakukan checkout untuk produk yang lebih mahal, kembali ke Burp Suite di Repeater. Gunakan permintaan konfirmasi order yang sebelumnya telah dikirim ke Repeater untuk melihat responnya.

permintaan di Repeater kirim ulang untuk mencoba menyelesaikan pesanan yang harganya melebihi saldo akun. Setelah respon berhasil, cek kembali halaman web untuk melihat apakah pesanan yang lebih mahal berhasil diproses.

tampilan pada halaman web akan menunjukkan penyelesaian terhadap lab, yang menandakan bahwa kelemahan validasi workflow berhasil dieksploitasi.

5. Path Traversal | File path traversal, validation of start of path (Practitioner)

Lab ini mengeksplorasi kerentanan path traversal, di mana aplikasi tidak memvalidasi dengan benar jalur file yang diminta oleh pengguna. Penyerang dapat memanfaatkan ini untuk mengakses file atau direktori di luar struktur yang diizinkan.

Langkah pertama yang dapat dilakukan adalah mengakses lab dan melihat tampilan awal lab yang diberikan.

Setelah itu, buka Burp Suite dan aktifkan intercept. Pada halaman web lab, pilih salah satu menu “View Detail” untuk mendapatkan permintaan (request) yang dapat diintercept dalam bentuk mentah (raw).

Langkah selanjutnya adalah meneruskan (forward) permintaan mentah (raw request) sampai Anda menemukan nama file gambar yang diakses.

Setelah menemukan nama file gambar tersebut, ubah nama filenya menjadi /var/www/images/../../../etc/passwd

Kemudian, teruskan (forward) permintaan tersebut sampai tidak menampilkan apa-apa. Selanjutnya, matikan intercept pada Burp Suite, lalu pergi ke HTTP history dan cari permintaan dengan nama file gambar yang telah diubah. Jika responsnya menunjukkan isi file seperti gambar di bawah ini, maka Anda telah berhasil mengeksploitasi kerentanan path traversal.

Untuk menyelesaikan lab, segarkan (refresh) halaman lab agar statusnya berubah menjadi “telah diselesaikan”

6. Information Disclosure | Source code disclosure via backup files (Apprentice)

untuk menyelesikan Lab ini berfokus pada kerentanan informasi disclosure, khususnya pada pengungkapan kode sumber melalui file cadangan. Kerentanan ini terjadi ketika file cadangan dari kode sumber aplikasi web disimpan di lokasi yang dapat diakses oleh pengguna tanpa otorisasi yang tepat. Dengan menemukan dan mengakses file cadangan ini, seorang penyerang dapat melihat kode sumber aplikasi yang mungkin berisi informasi sensitif seperti kredensial, logika bisnis, atau kerentanan lainnya.

Langkah pertama yang dilakukan adalah mengetikkan robots.txt pada URL. File robots.txt berguna untuk melihat direktori atau file yang diindikasikan oleh pengembang agar tidak diindeks oleh mesin pencari. Namun, file ini juga sering mengungkapkan lokasi direktori atau file sensitif yang seharusnya tidak terlihat oleh publik. Pada lab ini, berhasil mendapatkan lokasi /backup dari file robots.txt.

Selanjutnya, buka Burp Suite dan masuk ke menu “Target”. Pilih histori akses terakhir yang Anda akses. Dalam histori ini, terdapat file dan direktori yang ada pada laman website yang yang di akses. Berdasarkan informasi sebelumnya, di ketahui adanya direktori /backup. Cari file ini dalam histori.

Setelah menemukannya, lihat responsnya untuk memahami isi file tersebut. Kemudian, kirimkan permintaan tersebut ke “Repeater” untuk analisis dan manipulasi lebih lanjut

Pada “Repeater”, periksa responsnya dan coba cari link atau file yang terdapat pada /backup. Setelah mencari, ditemukan file ProductsTemplate.java.bak. Jika telah menemukan file ini, coba ganti permintaan di "Repeater" dengan temuan yang baru didapatkan dengan mengetikkan GET /backup/ProductsTemplate.java.bak HTTP/2. setelah itu send untuk melihat repon terbaru.

Pada respons terbaru ini, akan mendapatkan kode untuk menyelesaikan lab. Cari kode tersebut dan jika berhasil ditemukan, salin untuk di-submit pada solusi lab.

Submit Solution dan lab pun berhasil diselesaikan.

--

--