目录
level1
level2
level3
level4
level5
level6
level7
level8
level9
level10
xss-labs地址:https://github.com/do0dl3/xss-labs
将文件放入phpstady中的www目录下,随后浏览器访问localhost/xss-labs-master
d
level1
这一关主要就是考察反射型xss
但是由于不知道服务器端对于提交的敏感字符有没有过滤,所以这里直接在name参数
中赋值一个简单的弹窗来进行测试。
操作如下:
将name参数重新赋值
level2
可以看到插入到value参数值中的恶意代码并没有被编码而是直接原样返回
但是问题是这里的js代码在标签属性值中,浏览器是无法执行的。
既然上面的恶意代码被编码了,那么只能从属性值中的恶意代码处进行突破了。
要想浏览器执行这里的弹窗代码,只需要将属性的引号和标签先闭合就可以了。
">
level3
先用">测试
看到使用了htmlspecialchars方法,它的作用是将特殊符号转换成HTML实体。那么什么是HTML实体呢?
说白了就是HTML为了防止特殊符号,如 "<"等,html当成标签
这时候我们的思路就尽量要绕开使用新标签,那么浏览器还有一些事件可以执行js代码,如onfocus,onblur,但是这两个是属于输入框在光标进入/离开时调用后面的js代码
最后使用
aa'onclick = 'alert(1)
level4
输入<>发现他把<>过滤掉了
输入
a" onclick = alert(1) //
level5
输入发现是script中间加入了下划线
再输入onclick也不行
最后输入
"> test
用a标签成功绕过
level6
使用"> test发现href用不了
最后尝试大小写绕过
xss
level7
使用 后发现过滤掉了script
最后使用双写绕过
"> oonnclick = alert(1)
level8
编码JavaScript=alert(1)直接绕过、
javascript:alert(1)
level9
那我编码呗(第八关的后边加个注释再加个网址)
==注意:==后边的//注释一定要加,不然它就驴唇不对马嘴,自然浏览器也懵逼,所以要把后边的网址注释掉。
判断如果字符中没有http://的话就会返回false,
接着在href属性值中就会出现"您的链接不合法?有没有!"
箭头4和5:判断成功后,返回第一次出现的位置,
将该字符插入到href属性值中了
level10
还是’’ ’ >< script onclick测试一遍,发现只过滤了" 和<>,但是发现了三个隐藏的input,那么根据他们的name构造传值,让它们的type改变,不再隐藏,谁出来了谁就能利用
t_link=" type='text'>//&t_history=" type='text'>//&t_sort=" type='text'>//
从页面响应来看,有一个标签的状态可以被改变。这个标签就是名
为t_sort的标签,之前都是隐藏状态,但是通过构造参数响应发现只
有它里面的值被改变了。
因此可以从该标签进行突破,尝试能不能注入恶意代码进行弹窗。
最后输入
&t_sort=" type='text' onclick='javascript:alert(1)'>//



