xss-labs
level3
- 输入单引号发现能闭合前面的单引号 猜测可能是 ' ' 类型的
- 查看源码
<input name=keyword value='".htmlspecialchars($str)."'>
- 发现确实是 而且还带有实体编码函数 双引号、尖括号等没法用 但是在较低的php版本中不会编码单引号
- 这个时候在input标签里 可以考虑html事件函数
- 比如onblur="alert(/x/)"
- 所以先写一个单引号 闭合第一个单引号 后面就任人宰割了
- ' onblur='alert(/x/) 或者 ' onmouseover=javascript:alert(1) ' 都可以
level4
- 这一关很简单
- 发现双引号不会被编码 直接构造html事件执行就好了
- "onblur="alert(/x/)
- 查看源码分析 发现只过滤了左右尖括号
levle5
- 这一关发现on事件和script都无法使用
- 于是使用href
"> <a href=javascript:alert(1)>hack</a>
level6
level7
- 双写绕过 但不懂为啥 用上一关的会自动加上双引号
"> <scriscriptpt>alert(1);</scriscriptpt>
level8
- href 传入的 URI 中,也可以使用 HTML 字符实体。在打开链接时,字符实体也会被转换为对应的字符。
- Html实体编码解码网站
- 上面这是在线转换网站
level9
- 发现只要包含http:// 就能成功放到href里
- 所以构造
javascript:alert(1)*//http://*
- 即使是注释也行
level10
- 这一关是需要找到注入点
- 发现有三个地方value没有值
- 于是构造
test&t_sort=" onmouseover=javascript:alert(1) type "
- type" 闭合了后面值为hidden的type
- 让input框能显示出来
level11
- Referer头修改
- 可以看到有一个value等于referer的值
- bp抓包
- payload用回上一关的就行
level12
level13
- cookie头,可以用浏览器的扩展来修改user的cookie值
level14
level15
- 发现链接里有src=1.gif
- 所以src的值应该是注入点
- 在源码看到ng-include框架 所以可以进行包含
- 包含之前的关卡 然后传参是能执行弹窗的即可
'level1.php?name=<img src=1 onerror=alert(1)>'
level16
- 空格过滤 使用%0A代替
- 之后传入
<img%0Asrc=1%0Aonerror=alert('1')>
即可
之后的内容不符合历史潮流,已经被淘汰了。
posted @
2024-01-17 00:31
DawnLM
阅读(
12)
评论()
编辑
收藏
举报
点击右上角即可分享