1.
观察url,可以发现有一个name=test的传参,我们更改一下url
发现更改了,我们`直接上js弹窗试试
2.
我们输入之前的js代码
发现没有出现弹窗,我们可以看看网页源代码,看看到底输入了啥玩意.
在这里我们可以看见,我们的输入是毫无保留的上传上去的,这时候我们只需要闭合一下代码构造代码: "><script>alert("hack")</script>
成功了!
3.
随便输入数据,看网页源代码,
可以发现,我们的尖括号全部被替换成了其他的字符,但是经过尝试,可以判断是经过了HTML实体转化,这种转化对 ' 是不进行过滤的,所以我们可以先闭合,在通过事件类型实行注入,
比如onfocus事件,获得焦点,先输入 'οnfοcus=alert("hack");//
再点击输入框获得焦点,即可成功弹出弹窗
4.
4题还没有仔细观察与3题的区别,直接使用3题的代码试了一下,把闭合改为了 " 成功!
.......
5.
5题可以看到我们先输入一个js代码,出现源代码:
我们可以看见第一个被替换了,但是后面的居然没有被替换, 再尝试一个发现
过滤的是< script> ,先试试大小写绕过
被替换为了小写...
因为试过了,事件类型的on也会被替换.....
所以,试试a标签绕过
"><a href="javascript:alert(1)">aaaaa</a>
出现a标签,点击弹窗成功!
6.
把上一次用的a标签再用一次,发现href也被过滤了,但是没有过滤大小写,所以直接
"><SCript>alert("hack")</script>
7.
输入js代码
发现替换为了空,可以试试双写
"><scrscriptipt>alert("hack")</scscriptript>
8.
该题给我们留下了一个友情链接,我们可以通过伪协议执行JavaScript代码
javascript:alert(/xss/)
大写也没用,都会被替换掉
因为是友情链接,我们是需要讲我们的代码正确的传上去,所以我们用html实体编码,让html被修饰后转换回来,
格式使用 &#x
开头,后接字母的16进制编码,或者10进制编码,再加;
即可得c
javascript:alert(/xss/)
9.
观察前端源代码,出现
,所以尝试将里面的字符换为合法的http://
javascript:alert(http://)
发现直接就成功了
说明他只过滤了字符串中是否有http://
10.
发现3个隐藏的参数,我们可以通过事件类,来触发弹窗
然后实验发现,keyword被实体化了,现在实验哪个参数可以传参,
实验发现,只有t_sort有get传参的入口.
而且,没啥过滤,所以我们可以重新构建一句html代码,
&&t_sort=there" type="button" οnclick=alert("hack");//
11.
发现给t_sort传参数被实体化了,
但是,我们发现
有一串参数,是我上一题的url
所以,猜测最后一个参数是referer部分,所以我们可以抓包试试
自己添加Referer
发现成功了
所以我们把上一题的做法给这一题:
12.
与11题一致,只是参数变了
13.
与11题一致,只不过参数变为了cookie
14.
15.
我们可以看见url中存在一个名为src的参数,这个可以让ng-include后面的变化,
ng-include是一个通常用来包含html文件的东西,emm,按照我的理解,就是这玩意可以包含一个html文件,并把它打开,插入现有的html代码中(有错请大佬留言,蟹蟹了),所以我们需要包含一个已经有过xss漏洞的源文件,
输入 ?src='level1.php?name=<img src=1 οnerrοr=alert(1)>'
可以看见,它既嵌入了level1的文件,同时也弹出弹窗
16.
可以看见实际就是通过get传参改变了中间的字符串,试试可不可以插入标签
可以看见,我们插入标签,script是被替换为空格的,但是<>没有过滤
好像还过滤了/
同时,空格好像全被html实体化了.....
我们现在还可以试试回车
回车的 URL 字符是 %0D
输入 <img%0Dsrc="10.png"%0Donerror=alert("hack")>
17.
通过改变值,我们可以发现生成了第一个参数值=第二个参数值.
我真服了,全给实体化了
但是搜索后发现embed标签本身就可以插入事件类,而且很多的标签都可以使用事件类
所以,我就直接arg01= onblur&arg02=alert(1)
然后点击一下url框或者其他啥框,让他失焦.
18.
与上一题一致.
19. 20.
emmm,它把我们输入的东西存入了字符串中,但是"会被实体化掉,搜攻略,发现需要flash xxs,但是我这边不支持....