社区高级版和普通github下载的版本,有什么区别?
{‘struts’, ‘fastjson’, ‘shiro’, ‘thinkphp’}
高级版多出来这么4个插件
第一步 首先了解一下ceye api
在ceye平台注册一个账号并登录,在http://ceye.io/profile
即可获得标识符和API令牌,构造一个api的访问链接:
http://api.ceye.io/v1/records?token=你的token&type=dns&filter=xx.ceye.io
第二步 修改xray config
vi config.yaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| # 反连平台配置,更多解释见 https: # 注意: 默认配置为禁用反连平台,这是无法扫描出依赖反连平台的漏洞,这些漏洞包括 fastjson,ssrf 以及 poc 中依赖反连的情况等 reverse: db_file_path: "" # 反连平台数据库文件位置, 这是一个 KV 数据库 token: "" # 反连平台认证的 Token, 独立部署时不能为空 http: enabled: true listen_ip: 0.0.0.0 listen_port: "" ip_header: "" # 在哪个 http header 中取 ip,为空代表从 REMOTE_ADDR 中取 dns: enabled: true listen_ip: 0.0.0.0 domain: "xx.ceye.io" # DNS 域名配置 is_domain_name_server: false # 是否修改了域名的 ns 为反连平台,如果是,那 nslookup 等就不需要指定 dns 了 resolve: # DNS 静态解析规则 - type: A # A, AAAA, TXT 三种 record: localhost value: 127.0.0.1 ttl: 60 client: remote_server: true # 是否是独立的远程 server,如果是要在下面配置好远程的服务端地址 http_base_url: "" # 默认将根据 ListenIP 和 ListenPort 生成,该地址是存在漏洞的目标反连回来的地址, 当反连平台前面有反代、绑定域名、端口映射时需要自行配置 dns_server_ip: "" # 和 http_base_url 类似,实际用来访问 dns 服务器的地址 reverse_api: "http://api.ceye.io/v1/records?token=你的token&type=dns&filter=xx.ceye.io"
|
将dns的enable改为true,修改domain为ceye提供的域名,例如xx.ceye.io
添加reverse_api,修改为你的账号的token,修改domain为ceye提供的域名
第三步 修改poc
| name: poc-yaml-CVE-2022-22947-spring-cloud-Gateway-RCE set: reverse: newReverse() reverseDomain: reverse.domain ping {{reverseDomain}}
|
添加reverseDomain参数,xray会从config中获取我们定义domain,然后去访问
修改命令ping xx.ceye.io为ping
第四步 运行xray
./xray-reverse-api ws -u http://192.168.18.30:8080 –poc spring-cloud-Gateway-RCE-CVE-2022-22947.yml –html-output out.html
xray生成了一个随机的字符+xx.ceye.io,然后ping 这个子域名
从api.ceye.io去取回访问结果,如果能取回dns查询的结果,证明存在命令执行漏洞
xray无法解析ceye的结果,因此要手动去访问http://api.ceye.io/v1/records?token=你的token&type=dns&filter=xx.ceye.io
查看子域名是否有回显
以后写个python脚本判断一下
参考资料