Saat melakukan recon, Pencarian harta karun dalam javascript adalah bagian yang tidak pernah di lewatkan. namun bagaimana teknik anda dalam recon tersebut? kebanyakan mungkin melakukannya dengan pencarian rahasia menggunakan SecretFinder dan pencarian endpoint menggunakan LinkFinder dan jika sedang menggunakan burpsuite untuk manual testing mungkin akan menggunakan JSMiner. Di sini yang akan saya bahas tidak jauh dari hal itu namun dengan teknik dan pendekatan yang berbeda. Pernahkah anda mendengar tentang javascript obfuscation? yaitu teknik untuk mengaburkan isi file sebenarnya agar tidak mudah di baca, dan jika anda dengan brutal melakukan scanning dengan tools tools yang saya sebutkan di atas maka akan melewatkan beberapa informasi penting, seperti jika file JS yang anda scan di obfuscate maka tools akan melewatkan informasi penting seperti secret dan endpoint yang tidak terbaca. Namun jika melakukan analyst secara manual hal itu akan membuang banyak waktu, maka disini saya menggunakan teknik semi automation yang sedikit mempercepat proses tersebut.
Bahan:
- Cloud environment: VPS dengan GUI saya menggunakan zorin os Lite dengan spesifikasi 16 CPU dan 64GB RAM
- Ide saya yang menjadi Tools semi automation yang di tulis dengan bantuan Chatgpt di sini
- Local environment: laptop atau PC anda, di gunakan untuk manual testing
Hal yang perlu anda siapkan adalah env cloud dengan spesifikasi yang saya sebutkan, saya menggunakan dengan spek tinggi karena untuk menangani crawl dari katana yang di pipe ke burpsuite dan di burpsuite saya menggunakan JSminer yang saya modifkasi regexnya hal ini menyebabkan konsumsi RAM dan CPU sangat tinggi namun itu sepadan dengan hasil yang di dapatkan. Anda dapat memodifikasi di sini dan menambahkan regex sesuai selera anda. dan env lokal di gunakan untuk manual testing saya menggunakan JSMiner dengan konfigurasi defaultnya.
Anggap saja di sini target adalah *.razer.com sekarang di env lokal anda autentikasikan dan saya biasanya melakukan manual testing dan menjelajahi fitur yang hanya ada di UI saja, copy header untuk autentikasi misal Cookie atau Authorization dan simpan ke env cloud dengan nama header.txt dan saya juga menyiapkan endpoint logout.txt agar header auth tetap hidup. Di terminal VPS jalankan perintah katana yang di pipe ke burpsuite katana -list razersubdomain.txt -d 3 -c 1 -rl 10 -jc -jsl -H header.txt -cos logout.txt -aff -dr -proxy http://127.0.0.1:8080 setelah selesai saya akan mengumpulkan seluruh titik akhir JS dari manual testing dan automatic crawl lalu menghapus duplikat dan menyimpannya, jangan tutup burpsuite.
Selanjutnya adalah menggunakan tools untuk mencari JS yang di obfuscate memprosesnya untuk di deobfuscate lalu mengirimkannya ke burpsuite di env cloud dengan JSMiner yang telah saya modifikasi. sebelum itu buat directory misal razer.com dan buat file bernama waymore.txt lalu masukkan url JS yang telah di simpan sebelumnya ke waymore.txt dan jalankan python3 jsdeo.py -d razer.com ini secara otomatis mengambil JS dari wayback dan memprosesnya, sebelum itu anda harus membuka lagi burpsuite dengan proxy 127.0.0.1:8082 karena sebelumnya sudah di gunakan oleh katana.
sekarang lihat hasilnya, biasanya saya akan melihat bagian JSminer secret/credentials apakah ada yang menarik atau tidak. selanjutnya saya melihat bagian JSminer API endpoint. saat membandingkan hasil katana dan hasil deobfuscator ada beberapa API endpoint yang di temukan di jsminer pada deobfuscator namun tidak muncul di bagian jsminer dengan katana dan selanjutnya lakukan manual testing dengan hasil yang telah tersedia saya biasanya berfokus pada API endpoint di hasil yang telah dideobfuscate, mencoba mencari bug BAC, bypass auth, dan bug terkait API lainnya. inti dari teknik ini adalah mencoba melakukan pendekatan berbeda dan mengubah pembacaan JS secara manual menjadi semi auto.
Sekian.