XSS Challenges WP

XSS Challenges是一个日本老哥写的xss关卡,总体来说比较有意思,锻炼下xss各种的绕过方法,练习地址:https://xss-quiz.int21h.jp/
①level 1
没有任何过滤,直接构造payload:
<script>alert(document.domain)</script>
 
 
②level 2
f12审查元素发现是在input标签内,对标签进行闭合即可,构造payload:
"><script>alert(document.domain)</script>
 
 
③level 3
这一关输出的内容是包裹在<b>标签内,并且经过fuzz,<,>,"等都被转义了,无法闭合,但是发现还有一个是选择国家的选项
 
 
所以用burp抓包查看具体内容,发现是有两个post参数的,思考:参数1有限制,那会不会参数2能行呢?
 
 
改包,将p2改成xss的payload
</b><script>alert(document.domain)</script>

 
成功利用
 
 
④level 4
这一关也是有选择国家的,继续抓包查看,发现多了个p3参数
 
 
那么此时能否在p3上构造payload呢?尝试一波
 
但是发现,p3的payload被放到input标签内了
 
尝试修改payload进行闭合input标签
"><script>alert(document.domain)</script>
 
成功利用
 
 
⑤level 5
这里是对输入框内容进行了长度的限制
 
f12修改前端内容绕过限制
"><script>alert(document.domain)</script>
 
成功利用
 
 
⑥level 6
发现<>被html实体编码了,但是"好像能用
 
尝试构造属性事件进行利用,初次payload:
" onmouseover=alert(document.domain),但是发现变成了下面这鬼样,输出跑出了value值,并且多了几个"
 
应该是onmouseover事件在这本身就有一对",然后只需要在alert前面再加一个",将整个补充完整即可,payload:
" onmouseover="alert(document.domain)
 
 
⑦level 7
和前一关差不多,构造payload:
" onmouseover=alert(document.domain)
 
 
⑧level 8
这一关是输出的内容被包裹在<a>标签里面:
 
 
尝试闭合<a>标签,发现被转义了
 
 
<a>标签内可以利用JavaScript伪协议:
javascript:alert(document.domain
 
 
⑨level 9
这一题是utf-7编码,需要IE环境,有点麻烦,就直接用burp改返回包先跳过
 
⑩level 10
这一关把domain字符直接给过滤掉了
 
直接双写domain绕过
" onmouseover="alert(document.dodomainmain)
 
 
⑪level 11
这关是过滤了全部on事件
 
script标签前面被添加上x
 
所以现在我们不能使用on事件,不能出现script字符,",<>这些都能用,所以可以利用<a>标签配合JavaScript伪协议,并且在html标签中是允许html实体编码执行的,构造payload:
"><a href=javascri&#x70;t:alert(document.domain)>xss</a>
 
 
level 12
这一关把",<,>都过滤了,尝试很久也没能过去,先跳过了
 
level 13
需要配合IE环境,跳过。。
 
level 14
同样的问题,跳过。。
 
⑮level 15
这关把<>都给实体编码了
 
尝试利用hex编码绕过:
初次payload:
\x3cscript\x3ealert(document.domain)\x3c/script\x3e,发现\又没了...
 
 
双写 \ 绕过:
\\x3cscript\\x3ealert(document.domain)\\x3c/script\\x3e

 
 
⑯level 16
\\u003cscript\\u003ealert(document.domain)\\u003c/script\\u003e
unicode编码直接过了
 
后面的基本要在IE6环境下进行,就到此为止了...
总体来说作为练习还是不错的,写完收工...告辞
posted @ 2020-07-13 09:04  PANDA墨森  阅读(242)  评论(0编辑  收藏  举报