打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
八个无法利用XSS漏洞的场景

             ☝☝

相信有很多的小盆友们曾经发现过一些疑似存在XSS漏洞的站点,但又无法完全证明这个漏洞是可以被利用的。此时的你可能处于怀疑状态,也有可能你已经验证到一半了,严重怀疑其有精神病(XSS漏洞)的情况。那么这个时候该怎么办呢?


 
 

很多时候,手测没有任何进展,很多Hacker或许会用XSS fuzz,将准备好的XSS-Payload-list往BurpSuite里一扔,噢豁~还是找不到适合的Payload。

(注:各前辈集齐的XSS-Payload,各位盆友们自行查看)

# XSS-Payloadhttps://github.com/TheKingOfDuck/fuzzDicts/tree/master/easyXssPayloadhttps://github.com/ZephrFish/XSSPayloads/blob/master/raw_payloadshttps://github.com/silience/xsspayloadhttps://github.com/willc/XSSpayloads/blob/master/xss_payloads_6-20-12.txthttps://github.com/AeolusTF/XssPayload/blob/master/XssPayload.txt

(注:还有我的一键XSS上天遁地工具,无法无天,骨骼精奇的盆友可得)

当然也有很多头铁的小伙伴去硬刚的,毕竟没有绝对的安全嘛,但是这必定会是个长久的消耗战。为了搞清楚哪些情景下,我们无法利用XSS漏洞,特此安排此文进行讲解。

(事先声明:以下所谓的无法利用的场景或许只是因为个人能力不足所导致的一种错误认知,若有不足之处或解决方法,希望各位师傅们分享。)





0x01 WAF拦截[a-zA-Z]

遇到这一情况,大小写字母都给你拦截,怎么办?很多人或许会说利用十六进制编码绕过、用Unicode编码绕过、用URL编码绕过,但是似乎行不通。不用说,链接在下方。
http://portswigger-labs.net/impossible-labs/basic-context-waf-blocks-a-z.php?x=%3Cscript%3Ealert(1)%3C/script%3E

(师傅们,上才艺


0x02 基于脚本注入,引号('和')、正斜杆(/)和反斜杠(\)被转义

脚本注入是我们常用的手段了,但是引号、正斜杆和反斜杠被转义,相信让很多师傅们头疼吧。如果再来个实体化,那这头就更大了。我平时看到这情形基本都是撒腿就跑。老样子,上才艺,链接在下方。
http://portswigger-labs.net/impossible-labs/script-context-escaped-angle-brackets-allowed.php?x=%3C/script%3E%3Cimg%20src=1%20onerror=alert(1)%3E

(绕过了的师傅们记得分享分享



0x03 输出HTML文本内容,但不允许使用等号(=)

在处理查询字符串和URL的站点时,它对参数进行解码,但对等号进行拆分,然后将其赋值给innerHTML。在这个上下文中<script>将不起作用,我们又不能使用等号(=)来创建一个事件。What should I do?
http://portswigger-labs.net/impossible-labs/innerHTML-no-equals.php?x=%3Cimg%20src=1%20onerror=alert(1)%3E


0x04 基本内容长度限制

此XSS场景发生在基本的HTML上下文中,但是长度限制为15。这里存在一个矢量,可以执行16个字符的JavaScript:<q oncut=alert''。但是这能够被利用吗?
https://portswigger-labs.net/impossible-labs/basic-context-length-limit.php?x=%3Cq%20oncut=alert%60%60

(我除了拿出我的一键XSS上天遁地工具,别无他法)



0x05 属性内容长度限制

这个场景上下文在长度被限制在14个字符的属性中,这里存在一个向量,它用15个字符执行JavaScript:'oncut=alert`` 。加号是尾随空格,有办法利用吗?

https://portswigger-labs.net/impossible-labs/attribute-context-length-limit-arbitrary.php?x=%22oncut=eval(top.name) 


0x06 基于脚本注入发生在框架内,并不在主体内容中

这是一个关于twitter next实验室的请求,它发生在一个框架集中。师傅们看看

http://portswigger-labs.net/impossible-labs/after-frameset-before-body.php?x=%3C/frameset%3E%3Cscript%3Ealert(1)%3C/script%3E


0x07 基本上下文长度限制任意代码

注意哈~这和第四点不一样的。这里的限制是只让你调用alert,其它任意代码都被限制,这个时候是否有办法利用?

https://portswigger-labs.net/impossible-labs/basic-context-length-limit-arbitrary.php?x=%3Cq%20oncut=eval(name)

0x08 属性上下文长度限制任意代码
这个跟第五点也不一样,别搞错了。环境链接暂时没有,师傅们直接意会。(据说国外能使用任意JavaScript来查找最短的基于属性的注入。)


若有不足之处,一起讨论研究。此文是翻译加改编而来,原链接在下方:
https://portswigger.net/research/documenting-the-impossible-unexploitable-xss-labs

■ Over ■



本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
一网打尽:2022最全靶场总结
网络安全入门必知的靶场!
常见渗透测试漏洞靶场 共计24个 快快搞起来吧
【第849期】如何让前端更安全?——XSS攻击和防御详解
web前端安全机制问题全解析
2020年十大开源waf介绍
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服