Dalam artikel sebelumnya, kami mengetahui tentang ralat XSS (Cross Site Scripting) dan eksploitasi sebenar XSS Reflected. Terdapat satu lagi jenis XSS yang dianggap lebih berbahaya: XSS yang disimpan.
Tidak seperti Reflected, yang secara langsung menyerang beberapa mangsa yang disasarkan oleh penggodam, Stored XSS menyasarkan lebih ramai mangsa. Ralat ini berlaku apabila aplikasi web tidak menyemak data input dengan teliti sebelum menyimpannya ke pangkalan data (di sini saya menggunakan konsep ini untuk merujuk kepada pangkalan data, fail atau kawasan lain yang menyimpan data aplikasi. web).
Dengan teknik Stored XSS, penggodam tidak mengeksploitasinya secara langsung tetapi mesti melakukannya dalam sekurang-kurangnya 2 langkah.
Pertama, penggodam menggunakan titik input yang tidak ditapis (bentuk, input, kawasan teks...) untuk memasukkan kod berbahaya ke dalam pangkalan data.

Seterusnya, apabila pengguna mengakses aplikasi web dan melakukan operasi yang berkaitan dengan data yang disimpan ini, kod penggodam akan dilaksanakan pada pelayar pengguna.
![Web8: Eksploitasi XSS - Bahagian 2: XSS yang disimpan Web8: Eksploitasi XSS - Bahagian 2: XSS yang disimpan]()
Pada ketika ini, penggodam nampaknya telah mencapai matlamatnya. Atas sebab ini, teknik XSS Tersimpan juga dipanggil XSS tertib kedua.
Senario eksploitasi diterangkan seperti berikut:
![Web8: Eksploitasi XSS - Bahagian 2: XSS yang disimpan Web8: Eksploitasi XSS - Bahagian 2: XSS yang disimpan]()
XSS yang dicerminkan dan XSS yang disimpan mempunyai dua perbezaan utama dalam proses serangan.
- Pertama, untuk mengeksploitasi Reflected XSS, penggodam mesti menipu mangsa supaya mengakses URLnya. Bagi Stored XSS, tidak perlu melakukan ini. Selepas memasukkan kod berbahaya ke dalam pangkalan data aplikasi, penggodam hanya perlu menunggu mangsa mengaksesnya secara automatik. Bagi mangsa, ini adalah perkara biasa kerana mereka tidak tahu bahawa data yang mereka akses telah dijangkiti.
- Kedua, matlamat penggodam akan lebih mudah dicapai jika pada masa serangan mangsa masih dalam sesi aplikasi web. Dengan Reflected XSS, penggodam boleh meyakinkan atau menipu mangsa supaya log masuk dan mengakses URL yang dia sediakan untuk melaksanakan kod hasad. Tetapi Stored XSS adalah berbeza, kerana kod hasad telah disimpan dalam pangkalan data Web, jadi apabila pengguna mengakses fungsi berkaitan, kod hasad akan dilaksanakan, dan kemungkinan besar fungsi ini memerlukan pengesahan. log masuk dahulu, jadi jelas pada masa ini pengguna masih dalam sesi.
Daripada perkara ini, dapat dilihat bahawa Stored XSS jauh lebih berbahaya daripada Reflected XSS, subjek yang terjejas boleh menjadi semua pengguna aplikasi web tersebut. Dan jika mangsa mempunyai peranan pentadbiran, terdapat juga risiko rampasan web.