三种XSS的概念原理区别
-
反射型XSS(Reflected XSS):
-
概念:反射型XSS发生在用户提交的数据被立即反射到页面上,而不是存储在服务器上。攻击者通过构建包含恶意脚本的URL或表单输入,然后诱使用户访问这些恶意输入,从而触发攻击。
-
原理:攻击者构建包含恶意脚本的URL,当用户点击这个URL时,恶意脚本被反射到用户的浏览器上执行。
-
区别:反射型XSS攻击的数据是一次性的,不会存储在服务器上。它通常需要用户交互才能触发攻击,例如,用户点击了一个恶意链接。
-
-
存储型XSS(Stored XSS):
-
概念:存储型XSS发生在用户提交的数据被存储在服务器上,然后被其他用户访问时触发攻击。攻击者将恶意脚本提交到应用程序,这些脚本随后存储在数据库或文件中,然后被其他用户访问时执行。
-
原理:攻击者将恶意脚本存储在应用程序的数据库或文件系统中。当其他用户访问包含恶意脚本的页面时,脚本被从服务器检索并执行,从而触发攻击。
-
区别:存储型XSS攻击的数据被永久性地存储在服务器上,可以被多个用户访问。攻击不依赖于用户点击特定链接,因为恶意脚本已经存储在服务器上。
-
-
DOM-based XSS(DOM-based Cross-Site Scripting):
-
概念:DOM-based XSS是一种特殊类型的XSS,它涉及到JavaScript在客户端(浏览器)中修改DOM树时触发的漏洞。攻击者通常利用JavaScript操作DOM中的数据来触发XSS攻击。
-
原理:攻击者构建恶意URL或输入,当浏览器执行相关JavaScript代码时,会导致DOM中的数据被恶意修改,从而触发XSS攻击。
-
区别:DOM-based XSS攻击不一定要求数据存储在服务器上,而是利用客户端的JavaScript操作来触发攻击。这使得检测和预防这种类型的攻击更为复杂。
-
总的来说,这三种XSS攻击类型的区别主要在于攻击的原理和攻击数据的存储方式。
DVWA
LOW
源码没有经过过滤保护
输入名字可以直接得到响应
我们可以直接修改url
MEDIUM
源码过滤掉了<script>和空格,我们可以双写绕过
还可以大写绕过
利用其他标签进行绕过
(1)img(图片插入法)
<img src=1 οnerrοr=alert('xss')>
(2) iframe
<iframe οnlοad=alert(123456)>
HIGH
过滤掉了这些字符
/i的意思是大小写通用,所以上述双写和大小写绕过都不行了,但利用其他的标签进行绕过依然可以成功。