XSS(Stored)
特点
又名“存储型XSS”。攻击者的“恶意语句”会存储在服务器端数据库,具有很强的稳定性。每次前端调用数据库内容,则会触发语句。一般出现在留言板、上传资料等与数据库有交互的模块。相比反射型XSS,该类型的XSS带来的危害更大,持续事件更久。
漏洞危害
- 泄露用户的Cooike
- 泄露用户的IP地址、浏览器信息
- 篡改网页
- XSS钓鱼
DVWA
Low
应用防御措施
服务器端只检查是否存在“name”和“message”这两个字段、数据库连接,以及转义特殊符号,接着进行Update,没对数据进行检验处理。
攻击方式
name输入框做了长度限制,所以选择在message输入框输入Payload
Payload:<script>alert(/xss/)</script>
Medium
应用防御措施
在message输入框注入Low级Payload发现,服务器端对“script”标签进行转义,双写和大小写绕过都失败。则我们从name的输入限制入手,$name对“script”进行转义,则可以通过大小写,双写注入。
strip_tags( addslashes( $message ) ) 对$message参数预定义字符添加反斜杠,再剥去html标签
攻击方式
Payload:
<sc<script>ript>alert(/xss/)</script> //双写绕过
<Script>alert(/xss/)</Script> //大小写绕过
High
应用防御措施
$message参数过滤不变 $name参数用正则表达式过滤了script标签,用我们用其他标签代替。
攻击方式
Payload:
<svg onload=alert("xss")>
<img src="" onerror=alert(/xss/) />
攻击成功效果图