业务安全漏洞-登录认证实战总结(一)
2023-9-20 21:35:40 Author: mp.weixin.qq.com(查看原文) 阅读量:5 收藏

文章首发于:

火线Zone社区(https://zone.huoxian.cn/)

用户名枚举

漏洞描述

一般存在于系统登录或注册页面,利用登陆系统中的漏洞可以试验出是否存在的哪些用户名,返回不同的出错信息可枚举出系统中存在的用户名。

此处以注册页面为例,通过手工的方式输入账号查看回显信息。

在注册页面输入admin用户提示当前用户名已被占用。

查看数据包,如果存在该用户名则返回0,如果不存在则返回1

发送到暴力破解模块导入字典,设置响应内容

得出3个用户

修复方案:

对系统登录失败提示语句表达内容进行统一的模糊描述,如用户名或密码错误。

用户批量注册

漏洞危害描述

网站的攻击者可以通过批量注册用户,能够实施大规模非法操作,如抢优惠券、恶意刷单等。这给服务商造成了直接的经济损失,而大量的垃圾用户也会占用系统资源,增加系统运行压力。

修复建议:

  1. 增强验证码机制,为防止验证码被破解,可以适当增加验证码生成的强度,例如中文图形验证码。

  2. 限制一定时间内IP登录失败次数。

验证码可绕过

常见的验证方式有:

  • 验证码(字符或数值计算)

  • 滑动验证(滑块或特定路径)

  • 点击验证(按照要求点击字符或图案)等

该验证码只在前端验证,因此可以在后端绕过。

可以看到验证码的包未发送到后端验证,只在前端校验。

修复方案:

可从以下几个方面预防认证绕过:

  • 增加验证码

  • 不使用前端验证

  • 密码通过加密算法加密

  • 失败次数多加锁

  • 密码强度增加

爆破加密口令

漏洞描述

认证过程中传输未加密或过于简单。

MD5加密:

从前端js代码查看,发现password字段加密中使用了md5进行了加密。

但这并不能给攻击者带来限制。只需设置加密载荷就可以。

成功得到密码

AES对称加密:

输入账号admin 密码admin

抓包发现密码变了

查看前端js,发现使用了AES对称加密,并且密钥和偏移量都可见。

加密流程 base64——》AES-128-CBC——》base64

核对一下,开始逆推
先base64解密

在使用AES解密,再次得到base64编码

得到明文。

抓包设置:

使用到的插件burpcrypto
https://github.com/whwlsfb/BurpCrypto
插件上设置

此处载荷按顺序设置,AES调用刚刚插件设置的外部扩展

三次加密

破解成功

修复方案:

建议按照网站的密级要求,需要对密码传输过程中进行加密得使用加密的方式传输,如使用HTTPS, 但加密的方式增加成本,或许会影响用户体验。

如果不用 HTTPS,可以在网站前端用 Javascript 做非对称密码加密,加密后再进行传输。

如果你是一个长期主义者,欢迎加入我的知识星球(优先查看这个链接,里面可能还有优惠券),我们一起往前走,每日都会更新,精细化运营,微信识别二维码付费即可加入,如不满意,72 小时内可在 App 内无条件自助退款

福利视频

笔者自己录制的一套php视频教程(适合0基础的),感兴趣的童鞋可以看看,基础视频总共约200多集,目前已经录制完毕,后续还有更多视频出品

https://space.bilibili.com/177546377/channel/seriesdetail?sid=2949374

技术交流

技术交流请加笔者微信:richardo1o1 (暗号:growing)


文章来源: https://mp.weixin.qq.com/s?__biz=MzIzMTIzNTM0MA==&mid=2247491999&idx=1&sn=b82841e20715e099477951d58982bd05&chksm=e8a5ebfcdfd262ead534bf555347f3f5f40016c18513563b34a9685d18a9bbf5b51c102280dc&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh