DVWA篇之XSS存储型
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,Low级别当我们在表格中输入名字和内容就会存储到数据库,并在页面显示出来同样的我们输入一个名字,然后在内容中输入我们的payload语句,分析是否能***成功。***成功。这时我们的语句被存储在数据库
千家信息网最后更新 2025年01月20日DVWA篇之XSS存储型
Low级别
- 当我们在表格中输入名字和内容就会存储到数据库,并在页面显示出来
- 同样的我们输入一个名字,然后在内容中输入我们的payload语句,分析是否能***成功。
***成功。这时我们的语句被存储在数据库中。
我们查看一下是否真的被存储在数据库中
可以看到在第三行的记录就是我们的payload语句,没有被任何过滤,完完整整的存储在数据库中。
因为是存储性的,当我们再次访问的时候肯定会直接出现弹框,这个可以刷新测试。- 接下来分析一下造成这个结果的原因,我们查看源代码。
trim()函数,用于去除字符串左右两侧的空格
stripslashes()函数,用于去除字符串中的反斜杠
mysqli_real_escape_string()对sql语句中的特殊字符进行转义。
从源码上看,此处,只是对输入的name,message做了防止sql注入的过滤,并没有对输入的字符串进行安全性过滤和处理。
当字符串写入数据库的时候,如果存在特殊字符,也会被转义,但是在当我们从数据库中调出的时候,并不影响特殊字符的功能。
Medium级别
- 在这个级别下我们还是用同样的方式测试一下结果。
出现了弹框,但是弹出的是1,因为在数据库中我没有将low下存储的payload删除。但是可以看出,我们输入的内容变成了alert(2),