DVWA | 存储型XSS

admin 2024年12月18日22:13:03评论6 views字数 1190阅读3分58秒阅读模式
存储型XSS也是XSS的一种,其他两种是反射型和DOM型。反射型和存储型的区别是:反射型只能作用一次,存储型在每次加载页面的时候都会触发。
LOW
用户需要在表单中输入标题和内容,之后输入的信息会在页面中显示出来,这种格式就像是贴吧、论坛、留言板的形式。
在有了反射型XSS的基础后,我们可以按照反射型XSS的思路分别对标题和内容两个输入框进行弹窗测试。
Payload:<script>alert(/xss/)</script>
在标题中输入时发现长度有限制,可以在网页源代码下通过修改控制长度的参数就可以完成跳出前端字符长度的限制。按照如下的步骤定位到参数后,双击修改maxlength的参数。

DVWA | 存储型XSS

继续尝试,发现弹窗了两次,证明标题和内容两个地方都可以进行XSS攻击。之后刷新页面发现也弹出两次窗口,这是因为在网页刷新的时候会加载我们刚才的内容,只要有用户进入到当前页面都可以触发。
Medium
切换到中级难度后要先重置数据库将low等级下存储的XSS语句删除掉。
更改标题的最大长度,输入payload后发现<script>标签被过滤了,与反射型XSS一样,尝试用双写、大小写、img标签等进行尝试。
Payload<scr<script>ipt>alert(/xss/)</script># 双写嵌套<sCRipt>alert('xss')</scRIpt># 大小写绕过<img src=1 onerror=alert(/xss/)># Img标签绕过
发现用双写、大小写、img都可以在标题处触发xss,而内容处无法触发。
分析代码后发现标题处只是将<script>标签替换为空,很容易就可以绕过。内容处使用了strip_tags()函数、addslashes()函数以及htmlspecialchars()函数去对参数进行过滤,无法绕过进行XSS攻击。

DVWA | 存储型XSS

函数解析:addslashes():函数返回在预定义字符之前添加反斜杠的字符串,预定义字符 ' 、" 、 、NULL。strip_tags():函数过滤字符串中的 HTML、XML 以及PHP的标签。htmlspecialchars():把预定义的字符 < 、> 、& 、’ 、”转换为HTML 实体,防止浏览器将其作为HTML元素。
High
看代码,发现服务器将中级难度下对内容进行严格过滤的方式改为对标题的过滤,而内容方面只用了正则匹配的方式过滤script标签,虽然避免了用双写和大小写绕过,但是可以使用img标签进行弹窗。
Payload:<img src=1 onerror=alert(/xss/)>
成功弹窗!

DVWA | 存储型XSS

Impossible
使用了Anti-CSRFtoken防止CSRF攻击,使用了stripslashes()函数、预编译和htmlspecialchars()函数对标题和内容都进行了过滤,无法实现攻击。

DVWA | 存储型XSS

原文始发于微信公众号(仙友道):DVWA | 存储型XSS

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年12月18日22:13:03
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   DVWA | 存储型XSShttp://cn-sec.com/archives/921300.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息