业务安全漏洞-登录认证实战总结(一)
业务安全漏洞-登录认证实战总结(一)
原创 萨满 火线Zone 2022-04-22 18:00
文章首发于:
火线Zone社区(https://zone.huoxian.cn/)
用户名枚举
漏洞描述
一般存在于系统登录或注册页面,利用登陆系统中的漏洞可以试验出是否存在的哪些用户名,返回不同的出错信息可枚举出系统中存在的用户名。
此处以注册页面为例,通过手工的方式输入账号查看回显信息。
在注册页面输入admin用户提示当前用户名已被占用。
查看数据包,如果存在该用户名则返回0,如果不存在则返回1
发送到暴力破解模块导入字典,设置响应内容
得出3个用户
修复方案:
对系统登录失败提示语句表达内容进行统一的模糊描述,如用户名或密码错误。
用户批量注册
漏洞危害描述
网站的攻击者可以通过批量注册用户,能够实施大规模非法操作,如抢优惠券、恶意刷单等。这给服务商造成了直接的经济损失,而大量的垃圾用户也会占用系统资源,增加系统运行压力。
修复建议:
-
增强验证码机制,为防止验证码被破解,可以适当增加验证码生成的强度,例如中文图形验证码。
-
限制一定时间内IP登录失败次数。
验证码可绕过
常见的验证方式有:
– 验证码(字符或数值计算)
-
滑动验证(滑块或特定路径)
-
点击验证(按照要求点击字符或图案)等
该验证码只在前端验证,因此可以在后端绕过。
可以看到验证码的包未发送到后端验证,只在前端校验。
修复方案:
可从以下几个方面预防认证绕过:
– 增加验证码
-
不使用前端验证
-
密码通过加密算法加密
-
失败次数多加锁
-
密码强度增加
爆破加密口令
漏洞描述
认证过程中传输未加密或过于简单。
MD5加密:
从前端js代码查看,发现password字段加密中使用了md5进行了加密。
但这并不能给攻击者带来限制。只需设置加密载荷就可以。
成功得到密码
AES对称加密:
输入账号admin 密码admin
抓包发现密码变了
查看前端js,发现使用了AES对称加密,并且密钥和偏移量都可见。
加密流程 base64——》AES-128-CBC——》base64
核对一下,开始逆推先base64解密
在使用AES解密,再次得到base64编码
得到明文。
抓包设置:
使用到的插件burpcryptohttps://github.com/whwlsfb/BurpCrypto插件上设置
此处载荷按顺序设置,AES调用刚刚插件设置的外部扩展
三次加密
破解成功
修复方案:
建议按照网站的密级要求,需要对密码传输过程中进行加密得使用加密的方式传输,如使用HTTPS, 但加密的方式增加成本,或许会影响用户体验。
如果不用 HTTPS,可以在网站前端用 Javascript 做非对称密码加密,加密后再进行传输。
【火线Zone云安全社区群】
进群可以与技术大佬互相交流
进群有机会免费领取节假日礼品
进群可以免费观看技术分享直播
识别二维码回复【社区群】进群
【火线zone社区周激励】
2022.4.11~ 2022.4.17公告
【相关精选文章】
火线Zone是[火线安全平台]运营的云安全社区,内容涵盖云计算、云安全、漏洞分析、攻防等热门主题,研究讨论云安全相关技术,助力所有云上用户实现全面的安全防护。欢迎具备分享和探索精神的云上用户加入火线Zone社区,共建一个云安全优质社区!
如需转载火线Zone公众号内的文章请联系火线小助手:hxanquan(微信)
// 火线Zone
//
微信号 : huoxian_zone
点击阅读原文,加入社区,共建一个有技术氛围的优质社区!