[靶场] XSS-Labs 06-10

6. Level6-大小写绕过

GET请求方式,数据回显在input标签的value中。

我们尝试注入事件。

on被过滤为o_n。我们尝试大小写绕过。

http://127.0.0.1:8005/level6.php?keyword="+oNclick="alert(1)

 点击成功触发XSS。

代码:

只过滤<script、on、src、data、href,没有过滤大小写,例如:<ScRipT、oN。

同理使用注入脚本(script改为sCript)也可也成功。

http://127.0.0.1:8005/level6.php?keyword="> <sCript>alert(1);</sCript>

7. Level7-双写绕过

GET请求方式,数据回显在input标签的value属性

我们注入脚本。

http://127.0.0.1:8005/level7.php?keyword="> <script>alert(1);</script>

但是脚本中的script字符不过滤为空。我们尝试双写绕过。

由于服务端检测到script字符,会替换为空,因为替换一次,外面的两个字符sc和ript刚好合并为script。

http://127.0.0.1:8005/level7.php?keyword="> <scscriptript>alert(1);</scscriptript>

成功触发XSS。 

代码:

过滤关键词,进行的是替换为空的操作,由于只是替换一次,可以被双写绕过。

同理,使用oonn,srsrcc,dadatata,hrhrefef都可以绕过。

8. Level8-%0a,%0d,%09绕过

请求方式为GET,数据回显在input的value和a的href中。 

我们先从input的value测试,注入事件。

http://127.0.0.1:8005/level8.php?keyword=" onclick=a"lert(1)

双引号全部被强制转义,我们无法闭合双引号。那我们从a标签入手,a标签中通常使用javascript伪协议触发。

script被过滤替换为sc_ript。我们使用%09(水平定位符号),%0a(换行键),%0d(归位键)来插入script中绕过过滤。

http://127.0.0.1:8005/level8.php?keyword=javasc%0aript:alert(1);

成功触发XSS。 

代码:

过滤关键词,将关键词进行替换。%0a是换行符,导致sc%0aript不能匹配上,不会被替换,但是script关键词中间有换行符,依然会被解释为scrpit,其他关键词同理。

9. Level9-绕过强制包含字符串

请求方式为GET,数据当前回显在input的value中,同时a的href中也有回显,但是必须符合要求。

我们依然测试闭合input的value属性。

但是双引号被强制转义,无法闭合value属性。

我们从a的href下手,它要求输入一个符合规范的字符串,我们尝试得到。

不论http://在什么位置,只有包含这个字符串就可以通过匹配。

我们使用javascript伪协议触发,由于过滤的script,我们使用%0a绕过,由于必须包含http://,我们写一个合法的js语句包含即可,使用分号分开。这里用的是: var t ='http://';

http://127.0.0.1:8005/level9.php?keyword=javasc%0aript:alert(1);var+t='http://'

点击触发XSS成功。

代码:

强制包含http://字符串,但是没有控制字符串所在位置,在javascript伪协议中使用构造好的的合法js语句,就可以绕过。

10. Level10-隐藏域提交

请求方式为GET,数据回显在上面的黑体字部分,同时下方有3个隐藏域的参数。

我们在请求中提交这3个隐藏域参数,看看有没有哪个参数的数据回显。

http://127.0.0.1:8005/level10.php?keyword=well done!&&t_link=11&&t_history=22&&t_sort=33

 发现t_sort中有参数回显,我们注入事件。由于是隐藏域,无法点击,我们在onclick前将type属性写空,去除隐藏属性。

http://127.0.0.1:8005/level10.php?keyword=well done!&&t_sort=" type="" onclick="alert(1)

 点击触发XSS。

代码:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值