xss-labs通关记录

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

  • href写成hREF就行了

level7

  • 双写绕过 但不懂为啥 用上一关的会自动加上双引号
  • "> <scriscriptpt>alert(1);</scriscriptpt>

level8

  • href 传入的 URI 中,也可以使用 HTML 字符实体。在打开链接时,字符实体也会被转换为对应的字符。
  • Html实体编码解码网站
  • 上面这是在线转换网站

level9

  • 发现只要包含http:// 就能成功放到href里
  • 所以构造javascr&#x69;pt:alert(1)*//http://*
  • 即使是注释也行

level10

  • 这一关是需要找到注入点
  • 发现有三个地方value没有值
  • 于是构造
  • test&t_sort=" onmouseover=javascript:alert(1) type "
  • type" 闭合了后面值为hidden的type
  • 让input框能显示出来

level11

  • Referer头修改
  • 可以看到有一个value等于referer的值
  • bp抓包
  • payload用回上一关的就行

level12

  • ua头修改,同样bp抓包即可

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 @   DawnLM  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示