dvwa12——XSS(Stored)
这一关是存储型的xss
写入恶意代码→存入服务器→用户访问→代码执行→用户数据泄露
LOW
发挥防御作用的主要是以下三个函数:
trim(): 把括号内字符串首尾的空白字符(空格,制表符,换行符)移除,中间的不移除
stripslashes():删除括号内字符串的 ' \ '
mysqli_real_escape_string():转义函数
但这三个函数对XSS攻击都无效,所以在两个框内直接输入我们构造的payload
<script>alert('rerelee');</script>
在name输入的时候发现有长度限制,先提交用bp抓包
抓到这些
改为我们需要的
f12修改以下前端的代码,把 最大长度改成100
放包,回显成功
message回显直接输入就行
MEDIUM
先清空留言簿
查看源码:
可以注意到message多了一个函数htmlspecialchars(),在前一关解释过,所以message框内无法再进行xss注入
所以和low里面name栏注入的方法一样
另外,源码用了str_replace()函数,把<script>替换为空格了,所以我们大写绕过即可
<SCRIPT>alert('rerelee');</SCRIPT>
HIGH
清空信息簿,查看源码,和xss前两关一样,把所有形式的<script>都空格掉了,所以我们改代码为img
<img src=x onerror="alert('rerelee')">
这一关也在name内进行攻击,步骤与low一样
IMPOSSIBLE
name和message全部用了stripslashes()函数,均无法使用xss攻击