| 关键词: 输入 输出 级别 内容 XSS 存储 反射 元素 大小写 源代码 |
#本文仅用于网络安全研究学习任何未经授权的入侵都是违法行为 注:DVWA源代码分析本文没有写出 反射XSS1. 反射XSS低级别首先判断是否进行了GET方式提交name对应的参数切输出对应的内容若没有过滤就存在对应的XSS ![]() 输入1,可以输出;再输入则弹出下图的弹框,表明是存在反射XSS ![]() 由此可以看出在这个位置可以插入对应的脚本 2. 反射XSS中等级别跟上面一样首先判断是否进行了GET方式提交name对应的参数切输出对应的内容若没有过滤就存在对应的XSS ![]() 输入1依旧可以输出,再输入 ![]() 输入该内容之后并不会弹出相应的内容,可以看出做了script过滤但是alert()没有过滤,接着可以采取大小写绕过输入 ![]() 换种写法再试一次 ![]() 双写绕过 ![]() 使用大小写加双写绕过 ![]() 可以得出双写是无法绕过。 3. 反射XSS高级别使用 ![]() 复制图片地址看看有没有图片 ![]() 存储XSS1. 存储XSS低级别![]() 新建内容当我们再次访问的时候就会弹出WOAMI ![]() 查看元素可以看到刚刚写的内容
![]() 2. 存储中等级别采用大小写绕过或者是使用其他可以触发的XSS代码 输入前面我们执行过的会发现直接输出而不会输出对应的弹框 ![]() 查看源代码可以看出message 是不可能做出对应的XSS注入接下来可以用name去试试 ![]() 但是在输入的过程中限制了我们输入的字数 查看元素修改elements属性,回到页面继续 ![]() ![]() 这时候就成功了也可以看到2次输入的效果 ![]() ![]()
3. 存储高等级别同上我们修改elements属性,再输入 ![]() 注入后刷新就会弹出对应的内容弹框及内容
DOM XSS1. 存储低级别选择English会发现多了一项 ![]() ![]() 尝试修改,在后面加11111111结果如下 ![]() 在后面加入会弹出相对应的弹框 ![]() 查看源代码可以看到JS脚本 ![]() 查看元素可以看到对应的English以及脚本的写入
![]() 2. 存储中等级别 点击Select可以看到已经对应的输出了值,查看元素 ![]() 首先闭合select以及option输入 ![]() 成功输出弹框查看元素,可以看到我们刚刚写的经过它自己URL加密的
![]() 3. 存储高等级别同上面操作一样点击Select可以看到已经对应的输出了值,输入 ![]() 注意#前面有个空格 应对策略1)过滤用户输入 2)使用htmlspecialchar()过滤 3)使用owasp等安全xss处理API #本文仅用于网络安全研究学习任何未经授权的入侵都是违法行为 |
| 本文出处: https://www.toutiao.com/a6752544187616330247/ |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|