veo / vscan

开源、轻量、快速、跨平台 的网站漏洞扫描工具,帮助您快速检测网站安全隐患。功能 端口扫描(port scan) 指纹识别(fingerprint) 漏洞检测(nday check) 智能爆破 (admin brute) 敏感文件扫描(file fuzz)
https://veo.pub/2021/vscan/
BSD 3-Clause "New" or "Revised" License
1.47k stars 240 forks source link

我想知道原因 or 误报 #45

Closed EzoomE closed 1 year ago

EzoomE commented 1 year ago

屏幕截图 2023-05-31 063504 不知道是否来自误报或对方使用一次性密码,甚至有一次FUZZ出用户名是test,然而全部错误,我更好奇VSCAN是如何得出这个结论的

EzoomE commented 1 year ago

我还要说明一点,对方允许用户修改返回包获得跳转向后台页面的链接,然而302跳转后的请求存在一个检测,如果用户不满足这个需求则会再次302跳转回到login,但是我感觉这个得出密码的样子过于离谱了,应该不是爆破出来的,我很好奇这个结论是如何得出的?

veo commented 1 year ago

由于vscan的设计初衷主要应用于红队快速扫描,设计上为了速度牺牲了准确率。 还有我个人认为,误报总比漏报要好。

所以vscan结果可能会有大量的误报,需要手工二次排查

说一下原理: 1.利用正则判断是否有pass login等关键字,有的话判断为登录页面 2.利用正则寻找登录接口,登录参数 3.构造登录包,先登录一个不存在的随机账号密码的,取返回内容 4.构造弱口令登录包,进行爆破登录,同时与随机登录包返回、前面所有爆破的登录包返回内容进行比较,大于区别阈值则停止爆破,判断可能成功 5.再发一个判断可能成功的账号不同密码,取返回值,比较停止爆破的登录包,如果不一样,则爆破成功

逻辑我个人认为还是比较缜密的,关键在于 1.如何正确的构造登录包 2.登陆次数限制 3.返回一直内容变化 三个问题 1.正确的构造登录包如果用浏览器引擎解析会更准确,但是会牺牲效率,所以还是采用正则 (误报+30%) 2.登录次数限制有可能会封禁账号,或每次返回的内容都不一样(误报+10%) 3.返回内容一直变化,如返回内容带随机的md5时间戳等 (误报+10%)

所以这个问题其实很难解决,我已经尽力了

EzoomE commented 1 year ago

由于vscan的设计初衷主要应用于红队快速扫描,设计上为了速度牺牲了准确率。 还有我个人认为,误报总比漏报要好。

所以vscan结果可能会有大量的误报,需要手工二次排查

说一下原理: 1.利用正则判断是否有pass login等关键字,有的话判断为登录页面 2.利用正则寻找登录接口,登录参数 3.构造登录包,先登录一个不存在的随机账号密码的,取返回内容 4.构造弱口令登录包,进行爆破登录,同时与随机登录包返回、前面所有爆破的登录包返回内容进行比较,大于区别阈值则停止爆破,判断可能成功 5.再发一个判断可能成功的不同账号密码,取返回值,比较停止爆破的登录包,如果不一样,则爆破成功

逻辑我个人认为还是比较缜密的,关键在于 1.如何正确的构造登录包 2.登陆次数限制 3.返回一直内容变化 三个问题 1.正确的构造登录包如果用浏览器引擎解析会更准确,但是会牺牲效率,所以还是采用正则 (误报+30%) 2.登录次数限制有可能会封禁账号,或每次返回的内容都不一样(误报+10%) 3.返回内容一直变化,如返回内容带随机的md5时间戳等 (误报+10%)

所以这个问题其实很难解决,我已经尽力了

非常感谢你耐心回答,工具很强大,应该是MD5时间戳导致的误报,谢谢