chaitin / xray

一款完善的安全评估工具,支持常见 web 安全问题扫描和自定义 poc | 使用之前务必先阅读文档
https://docs.xray.cool
Other
10.47k stars 1.83k forks source link

[BUG] xray的shiro漏洞检测模块有一个bug,我在测试存在shiro漏洞站点时遇到302他会自动跳转到他内网ip地址,导致shiro漏洞被跳过了 #1810

Closed money0day closed 4 months ago

money0day commented 4 months ago

[BUG] Xray 的 Shiro漏洞检测模块有一个bug,我在测试存在shiro漏洞站点时遇到302他会自动跳转导致shiro默认key漏洞被跳过了,的报告导出

具体情况如下,我手动发包是存在漏洞的,但是shiro模块漏洞会根据302跳转到http://localhost:9091/login.do 但该网站是域名并且是公网的,所以我不在其内网 localhost这种本地ip返回包肯定就是nil如下报错 导致返回包为空,则显示检测失败,实际只要爆破302返回包就可发现是默认key shiro漏洞

[WARN] [shiro:default.go:101] reponse is nil

返回包如下: HTTP/1.1 302 Server: nginx/1.18.0 Date: Thu, 18 Jul 2024 Connection: keep-alive Set-Cookie: Set-Cookie: rememberMe=deleteMe; Location: http://localhost:9091/login.do

[WARN] [shiro:default.go:101] reponse is nil 结果就是xray报错如此,就没输出此报告。但此处确实存在shiro rce

此问题可以将shiro漏洞检测写遇到302的两个情况,就是跳转后的shiro爆破检测 和跳转前的检测 应该可以解决这个问题,用shiro增强版工具确定此处 rce

Jarcis-cy commented 4 months ago

感谢反馈!内部已经修复过该问题,我们会先尝试跳转一次,然后再找特征,如果跳转后特征不在了,就取消跳转再发一次,通过这种方式来减少漏报

money0day commented 4 months ago

感谢反馈!内部已经修复过该问题,我们会先尝试跳转一次,然后再找特征,如果跳转后特征不在了,就取消跳转再发一次,通过这种方式来减少漏报

修复过为啥我测试还是这个报错啊师傅

money0day commented 4 months ago

感谢反馈!内部已经修复过该问题,我们会先尝试跳转一次,然后再找特征,如果跳转后特征不在了,就取消跳转再发一次,通过这种方式来减少漏报

[INFO] 2024-07-19 22:50:42 [shiro:default.go:82] checking cookie names [rememberMe] [INFO] 2024-07-19 22:50:42 [shiro:default.go:88] target is shiro, trying get shiro key with mode gcm [WARN] 2024-07-19 22:50:44 [shiro:default.go:101] reponse is nil [INFO] 2024-07-19 22:50:44 [shiro:default.go:88] target is shiro, trying get shiro key with mode cbc [] scanned: 0, pending: 1, requestSent: 4, latency: 151.00ms, failedRatio: 25.00% [WARN] 2024-07-19 22:50:46 [shiro:default.go:101] reponse is nil No results(vulns or subdomains) found, html report will not be generated [INFO] [] All pending requests have been scanned [*] scanned: 1, pending: 0, requestSent: 11, latency: 135.00ms, failedRatio: 18.18% 2024-07-19 22:50:48 [controller:dispatcher.go:573] controller released, task done

经过测试还是存在,这个外面poc是还没更新吗,师傅

money0day commented 4 months ago

感谢反馈!内部已经修复过该问题,我们会先尝试跳转一次,然后再找特征,如果跳转后特征不在了,就取消跳转再发一次,通过这种方式来减少漏报

经测试,如果挂上代理burp,或者yakit,他浏览走向会正常展示结果。若是不挂上代理,就会报错。可能是协议问题

money0day commented 4 months ago

感谢反馈!内部已经修复过该问题,我们会先尝试跳转一次,然后再找特征,如果跳转后特征不在了,就取消跳转再发一次,通过这种方式来减少漏报

image 如图 只有设置了代理,走的流量就是你这个逻辑

如果不设置代理,走的流量就会nil 卡bug,难不成是证书问题么 正常两边出结果,如图 image

关闭代理如图报错 image

Jarcis-cy commented 4 months ago

感谢反馈!内部已经修复过该问题,我们会先尝试跳转一次,然后再找特征,如果跳转后特征不在了,就取消跳转再发一次,通过这种方式来减少漏报

修复过为啥我测试还是这个报错啊师傅

内部修了,但是没发布,xray1.0系列暂时不更新了

money0day commented 4 months ago

感谢反馈!内部已经修复过该问题,我们会先尝试跳转一次,然后再找特征,如果跳转后特征不在了,就取消跳转再发一次,通过这种方式来减少漏报

修复过为啥我测试还是这个报错啊师傅

内部修了,但是没发布,xray1.0系列暂时不更新了

ok,暂时解决方案就是走一层其他代理工具