Jumat, 24 Juni 2011

Dari XSS untuk Reverse PHP Shell

XSS adalah bukan masalah besar, atau itu? Pada banyak kesempatan, saya pernah melihat ini kerentanan yang diklasifikasikan sebagai tidak berguna, tidak serius, dan menjadi ancaman rendah. Apa yang saya selalu ada dalam pikiran adalah bahwa itu hanya kemampuan dari browser, dan pikiran hacker yang menetapkan batas untuk serangan XSS.

Ini mungkin tampak mustahil untuk melakukan hal lain selain mencuri sesi, cookie dan melakukan phishing, defacements sisi klien dll Tapi lihatlah gambar di atas, yang merupakan shell php reverse otomatis disuntikkan ke situs, ketika seorang administrator vBulletin dilihat suatu berbahaya linkback.

Kerentanan itu sendiri yang saya maksud, adalah 0day dalam vBSEO yang ada dalam administrator dan moderator panel saja. Namun, penyerang mampu menyuntik script melalui fitur ini gigih linkback langsung ke bagian panel ini penanganan ini linkbacks
.
Singkatnya, penyerang kerajinan halaman HTML berbahaya seperti yang ditunjukkan pada penasehat. Kemudian, penyerang klik link ke forum target dengan vBSEO diinstal, dan ketika target tercapai, vBSEO melakukan GET-permintaan untuk halaman berbahaya HTML penyerang (jika disajikan online dan jika Refbacks diaktifkan).

Judul halaman ini kemudian dimuat langsung ke dalam database, dan administrator dapat melihatnya dibersihkan di thread yang sebenarnya, tetapi juga di admin dan panel mod mana judul tidak dibersihkan sama sekali, memungkinkan script untuk menjalankan.
Apa yang sebenarnya mungkin?

Setelah menemukan dan meneliti kerentanan ini, saya menyadari itu adalah kasus yang baik untuk melakukan penelitian lebih lanjut dan kemudian mengembangkan worm XSS. Untungnya aku lolos dari ide bahwa karena kenyataan itu bisa saja disalahgunakan secara global pada forum dengan Klik di sini diinstal. Namun, gagasan itu sendiri tidak buruk jadi aku mulai mengembangkan alias payload javascript, yang akhirnya akan menyuntikkan muatan PHP melalui fitur plugin bagus di vBulletin.
Awalnya, trojan XSS saya menulis harus bisa melakukan semua ini diam-diam tanpa pengguna mengetahui, jadi bukan document.write yang digunakan, appendChild yang menggunakan objek DOM, digunakan sebagai gantinya. Ini mengambil sedikit lebih banyak pekerjaan untuk berfungsi lebih baik, tapi hasilnya adalah bahwa jendela terlihat tidak akan mengubah kepada pengguna yang terkena terinfeksi dengan trojan ini.
Ketika pengguna menelusuri, dalam hal ini "Linkbacks Moderat", script dieksekusi segera setelah pengguna hit halaman. Ketika ini terjadi, trojan cek apakah infeksi telah terjadi sekali dan jika tidak, terus berlanjut. Kemudian iframe dibuat di luar frame terlihat, di mana adminhash dan securitytoken (CSRF-token) dibaca dan disimpan di sebuah variabel lokal dalam browser.

Kemudian bentuk baru disuntikkan ke dalam iframe, yang berisi adminhash dan securitytoken tersebut. Bentuk sendiri mengandung nilai-nilai yang dibutuhkan untuk membuat sebuah plugin baru dan benar-benar berlaku yang dalam hal ini, adalah kode PHP. Pada titik ini, script cek lagi jika pengguna sudah terinfeksi dan jika tidak, formulir dikirimkan, plugin diciptakan, dan cookie yang dibuat untuk mencegah script dari pergi dalam loop.
Kebanyakan administrator, akan melihat ikon kunci yang rusak dalam kasus mereka menggunakan HTTPS / SSL, dan kemudian mereka akan melihat sumber. Hal yang besar tentang menggunakan javascript untuk membuat objek HTML, terutama dengan dll "appendChild" adalah bahwa hal itu tidak terlihat. Sebuah debugger, seperti Firebug ditunjukkan pada gambar di atas diperlukan, kecuali admin menemukan muatan javascript berbahaya dan membaca apa yang dilakukannya, tapi kemudian mungkin terlalu terlambat.

Selama pelaksanaan trojan XSS, waktu keluar diatur. Ketika waktu habis, trojan XSS akan mencoba untuk menghapus sendiri meninggalkan hampir tidak ada jejak, selain plugin disuntikkan mungkin, dan sisa-sisa dari iframe tersembunyi di luar frame yang tidak dapat dilihat karena cara HTML bekerja dalam FireFox.
Jika penyerang berhasil, dan pasien juga, ia akhirnya akan melihat bahwa situs target telah terhubung kembali untuk mengambil judul, tetapi juga pengguna lain telah memicu Trojan XSS yang diharapkan disuntikkan plugin PHP ditentukan oleh penyerang.
Jadi apa ini alat saya telah menggunakan selama presentasi saya kerentanan ini? Itu alat yang dikembangkan baru-baru ditulis dengan Python, di mana payload ditulis dalam Javascript, bebas tersedia untuk siapa saja dibagian bawah blog ini. Saya sarankan bagaimanapun, bahwa pengguna alat ini terlihat di dalam kode sumber.

Apakah XSS ancaman serius itu?

Tidak ada komentar:

Posting Komentar