Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Bagaimana untuk menganalisis XSS yang dipantulkan

Bagaimana untuk menganalisis XSS yang dipantulkan

PHPz
PHPzke hadapan
2023-05-13 20:13:042097semak imbas

1. Reflected XSS

XSS Reflected bermaksud aplikasi memperoleh data yang tidak boleh dipercayai melalui permintaan Web, tanpa menyemak sama ada data tersebut mengandungi kod hasad. XSS yang dicerminkan secara amnya dibina oleh penyerang dengan URL yang mengandungi parameter kod hasad Apabila alamat URL dibuka, parameter kod hasad unik dihuraikan dan dilaksanakan oleh HTML Ia dicirikan oleh tidak berterusan dan memerlukan pengguna untuk mengklik pada pautan parameter tertentu boleh menyebabkan. Editor mengambil kod sumber bahasa JAVA sebagai contoh untuk menganalisis CWE ID 80: Peneutralan Teg HTML Berkaitan Skrip dalam Halaman Web (Asas XSS)

2 Kemudaratan XSS

Apabila pengguna mengakses permintaan URL dengan kod XSS, pelayan menerima data dan memprosesnya, kemudian menghantar data dengan kod XSS ke penyemak imbas, dan penyemak imbas menghuraikan data dengan kod XSS Akhirnya, kelemahan XSS dicipta, yang mungkin membawa kepada mencuri kuki tapak web sasaran dan memindahkannya ke pelayan penyerang, membaca maklumat pengguna yang tidak didedahkan atau melakukan serangan pancingan data melalui rampasan Klik. Dari Januari hingga November 2018, terdapat sejumlah 126 maklumat kerentanan yang berkaitan dengannya dalam CVE. Beberapa kelemahan adalah seperti berikut:

CVE 漏洞概述
CVE-2018-19091 tianti 是一款使用 Java 编写的免费的轻量级 CMS 系统,目前提供了从后台管理到前端展现的整体解决方案。其中 tianti 2.3 通过 tianti-module-admin / user /list userName 参数在用户管理模块中存在反射型 XSS 漏洞。
CVE-2018-14929 Matera Banco 1.0.0 容易受到多个反射型 XSS 的影响,正如 /contingency/web/index.jsp(又名主页)url 参数所示。
CVE-2018-12996  ZohoManageEngine Applications Manager 提供了监视和管理 J2EE 底层结构、J2EE应用的解决方案。在 Zoho ManageEngine Applications Manager 13(Build13800)中反射型跨站脚本(XSS)漏洞允许远程攻击者通过参数 'method' 向GraphicalView.do 注入任意 Web 脚本或 HTML。
CVE-2018-12090 LAMS 是由澳大利亚 Macquarie 大学,LAMS 国际有限公司和 LAMS 基金会联合开发出来的一个基于 JAVA 的新一代学习软件。在 3.1 之前的 LAMS 中存在未经身份验证的反射型跨站脚本(XSS),允许远程攻击者在 forgetPasswordChange.jsp?key = 密码更改期间通过操作未经过规范的 GET 参数来引入任意 JavaScript。

3. Kod sampel

Sampel datang daripada Samate Juliet Test Suite untuk Java v1.3 (https://samate.nist.gov/SARD/testsuite.php), sumber Nama fail: CWE80_XSS__CWE182_Servlet_URLConnection_03.java.

3.1 Kod Kecacatan

Bagaimana untuk menganalisis XSS yang dipantulkanBagaimana untuk menganalisis XSS yang dipantulkan

Contoh operasi kod di atas adalah untuk mendapatkan umur pengguna dan mencipta objek sambungan pada baris 40 , cipta aliran input pada baris 44 untuk mendapatkan kandungan respons objek urlConnection, baca baris data daripada aliran penimbal pada baris 52, dan pada baris 100, alih keluar semua tag <script></script> daripada data yang diperoleh dan hantar ke halaman Keluarkan data yang diproses Walaupun teg <script></script> ditapis, teg html lain masih boleh digunakan url berniat jahat dibina di sini, tetapi apabila tapak web tidak dilindungi, halaman tersebut akan membaca document.cookie kandungan dan memasukkannya ke dalam halaman. Ini mewujudkan XSS tercermin.

Gunakan 360 ​​Code Guard untuk mengesan kod sampel di atas, anda boleh mengesan kecacatan "XSS terpantul" dan tahap paparan adalah tinggi. Sumber pencemaran data dan arah aliran data boleh dianalisis dari laluan penjejakan, dan kecacatan dilaporkan pada baris 100 baris kod, seperti yang ditunjukkan dalam Rajah 1:

Bagaimana untuk menganalisis XSS yang dipantulkanRajah 1: XSS Terpantul contoh pengesanan

3.2 Kod pembaikan

Bagaimana untuk menganalisis XSS yang dipantulkan

Dalam kod pembaikan di atas, memandangkan kandungan yang dikeluarkan oleh halaman adalah umur pengguna, dalam baris 96, respons Kandungan ditukar kepada nombor, sekali gus menapis aksara html lain Walaupun aksara wujud, kod akan melaporkan pengecualian dan tidak akan menyebabkan XSS tercermin berlaku.

Gunakan 360 ​​Code Guard untuk mengesan kod yang telah dibaiki, dan anda dapat melihat bahawa tiada kecacatan "XSS yang dipantulkan". Seperti yang ditunjukkan dalam Rajah 2:


Bagaimana untuk menganalisis XSS yang dipantulkan

Rajah 2: Hasil pengesanan selepas pembaikan

4

Untuk mengelakkan reflektif ;, ', ", dsb.) dan

,

, dsb. untuk ditapis.

<script></script>(2) Mengikut lokasi berbeza di mana data akan diletakkan dalam konteks HTML (tag HTML, atribut HTML, skrip JavaScript, CSS , URL), lakukan pengekodan output yang sesuai untuk semua data yang tidak dipercayai javascript

(3) Tetapkan atribut

untuk menghalang penyerang daripada menggunakan. kerentanan

untuk menjalankan

serangan rampasan dalam JavaEE HttpOnlyKod untuk ditambahkan XSS adalah seperti berikut: CookieCookieHttpOnly

.

Atas ialah kandungan terperinci Bagaimana untuk menganalisis XSS yang dipantulkan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam