portswigger靶场 XSS3

Lab12: Reflected DOM XSS

老常客搜索功能,随意搜索时,发现靶场使用异步请求查询搜索结果,在请求成功后,将响应内容放入eval函数中,赋值给searchResultObj变量。此处响应内容为json格式。

构思闭合json的payload为"}alert(123),发现为成功执行。

按照上面的思路闭合了json,未进行连接字符串及后续}"会让语句报错,调整payload为"};alert(123)//,发现还是为执行。观察响应内容时,发现对双引号进行转移了。

对双引号进行逃逸处理,调整payload为\"};alert(123)//。成功触发弹窗

此靶场涉及几个知识点,详细如下:

1、eval函数中的所有内容都会被当作javascript代码进行执行。

2、js代码中语句以分号结尾。

2、查看官方payload,\"}-alert(1)//。js代码中字符串与函数用运算符进行连接时,函数任然会被执行。

特别说明:测试时需多观察请求及响应内容,本次测试开始,一直盯着代码分析,查看官方payload时,才发现要进行闭合json及转移了双引号。

Lab13: Stored DOM XSS

还是那个留言功能,按照之前思路进行测试。

查看源代码,还是会发起异步请求所有评论内容,并且利用JS插入到DOM树中,利用escapeHTML函数对尖括号进行替换。初次分析暂未看出问题。

查看官方payload,<><img src=1 οnerrοr=alert(1)>。replace函数对匹配到的第一个结果进行处理,后续匹配值不会进行处理。

插入payload为<><script>alert(123)</script>,插入成功,并未触发弹窗。猜测可能对script标签进行限制。

在此插入paylaod为:<><img src=1 οnerrοr=alert(123)>,成功弹窗

需注意点:

replace函数替换仅替换第一次匹配结果,因此测试时可以进行双写绕过。

Lab14: Reflected XSS into HTML context with most tags and attributes blocked

直接搜索<img src=1 οnerrοr=alert(1)>,提示该标签不被允许。猜测后端对标签进行检测,需逐个尝试被允许的标签。

发现body标签可以使用,直接搜索<body οnlοad=alert(123)>123</body>,提示属性不被允许。此处waf对标签及事件属性进行过滤。

通过逐个尝试发现body标签的onresize事件未被过滤,onresize在修改该标签元素时触发。

起初payload为:</h1><body width="100px"><body οnresize=alert(123)width="200px">123</body></body>。思路是通过多个body标签改变文档的宽度,发现并未触发。偶尔打开审查元素时,触发onresize事件,成功弹窗。

官方截图思路为iframe标签src加载搜索URL,然后利用οnlοad="this.style.width='100px'",修改当前窗口宽度触发onresize事件。根据官方给出payload即可成功通过该靶场。

此靶场意为爆破waf未过滤的标签及事件属性。

Lab15: Reflected XSS into HTML context with all tags blocked except custom ones

还是开局一个搜索框,直接测试<h1>123</h1>,提示该标签不被允许,被waf拦截。经测试现有标签均被过滤。

现有标签都被过滤时,可利用自定义标签,格式为<tag>value</tag>必须用尖括号包围,成对出现。自定义标签被html解析器识别。

payload为:<tag οnclick=alert(123) style="color:red">123</tag>,标签的事件及属性都被html解析器识别。点击标签后成功触发弹窗。

Lab16: Reflected XSS with some SVG markup allowed

经测试过滤了所有标签,仅svg及animatetransform标签可以被正常识别。

标签测试完后,尝试事件,大多也被禁止使用,只有onbegin被允许。

payload为<svg><animatetransform onbegin=alert(123) />,成功弹窗。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值