Penulis: czy <[email protected]>
Sumber: http://www.nsfocus.net
Tanggal: 2003-09-03
(Perhatikan bahwa karena forum akan memproses beberapa karakter dalam artikel, yang terbaik adalah
http://www.chinansl.com/czy/xmlhttp.txt Baca artikelnya
http://www.chinansl.com/czy/aspsky5.htm kode uji)
Saya yakin Anda sudah terbiasa dengan serangan scripting lintas situs, tetapi selalu ada satu saat Anda mendapatkan kue.
PERTANYAAN: Selalu gunakan jendela.
Ini diskon besar. Saya dulu memikirkan metode insertAdJacentHtml untuk menyuntikkan pernyataan HTML di halaman web
Metode ini hampir tidak dapat digunakan untuk mengirim cookie tanpa jendela IE, tetapi dalam penggunaan aktual, kesalahan IE mungkin terjadi.
Apakah tidak ada cara yang lebih baik? Di masa lalu, saat mempelajari peningkatan otomatis virus VBS, saya menggunakan microsoft.xmlhttp.
Kontrol (Kontrol ini adalah sesuatu yang dilengkapi dengan default pada Win98/2k, dan itu adalah kontrol IE yang dipikirkan aman!), Melalui itu kita
Anda dapat mengirim permintaan HTTP ke situs web di halaman web, baik posting atau dapatkan.
Oke, idenya telah datang ke sini. Mari kita ambil Aspsky5.00320 sebagai contoh.
Kita tahu bahwa <imgsrc = "xxxxxx"> dapat ditulis dalam src dengan vbscript:. . Misalnya
<imgsrc = "vbscript: a = (msgbox (sekarang))">, tetapi kita hanya dapat menjalankan satu pernyataan, misalnya
<imgsrc = "vbscript: a = (msgbox (sekarang)): b = (msgbox (sekarang))"> Ini akan salah!
Apa yang harus saya lakukan? Dalam VBS kita dapat menggunakan pernyataan eksekusi, di JS kita dapat menggunakan eval!
Sebagai contoh: <imgsrc = "vbscript: execute (" a = (msgbox (sekarang)): b = (msgbox ("czy" "))") ">
Atau <imgsrc = "JavaScript: eval ('alert (/' nsfocus/'); alert (/' czy/')')">
Belum pusing, kan? Seperti di atas, Anda mungkin memperhatikan bahwa ketika menggunakan pernyataan Execute VBS, kutipan ganda harus diubah menjadi "Ini karena:
Dalam VBS, kutipan tunggal harus dilampirkan dengan string, dua kutipan tunggal mewakili satu dan satu kutipan, dan dalam kutipan ganda!
Jadi dalam pernyataan eksekusi, kami tidak dapat menggunakan kutipan tunggal, tetapi secara langsung menggunakan ", ketika html dicocokkan dengan kutipan
Ini akan cocok dengan kutipan setelah src = ", jadi kita hanya bisa menggunakan" sebagai gantinya.
Masalah tanda kutip telah diselesaikan. Dalam aplikasi yang sebenarnya, Aspsky juga akan memproses kode kami:
1: Jika Anda menemukan string skrip, Anda akan menambahkan ruang sebelumnya.
2: Jika Anda menemukan string http, itu akan dianggap sebagai URL dan menambahkan <a> elemen di kedua sisi
3: Jika Anda menemukan spasi, Anda akan menggunakannya sebagai gantinya
Selesaikan masalahnya:
1: vbscript digantikan oleh vbscript
2: Gunakan "" ht "" " +" "TP ... sebagai gantinya (ada lebih dari satu pasang aplikasi dalam tanda kutip dan tanda kutip di VBS, + mewakili konektor)
3: Gunakan ruang sebagai gantinya (perhatikan tidak)
Pada akhirnya, ini adalah masalah pengiriman cookie:
1: Kontrol dapat memperoleh atau memposting situs web mana pun secara lokal, tetapi hanya dapat digunakan di halaman web.
Dapatkan, posting server saat ini. . . . Kalau tidak, IE akan mengatakan dia akan menolak untuk bertanya!
2: Cookie tidak dapat memiliki karakter dengan interaksi khusus di URL
Selesaikan masalahnya: