08月12, 2019

几种常见的业务逻辑漏洞

在阅读了部分渗透测试报告后,发现占比较大的是一些业务逻辑漏洞,故写此篇文章总结一下常见的业务逻辑漏洞。


权限验证缺陷

未授权访问

未登录的时候可以访问某些需要登陆后才能访问的页面。

未授权使用业务

某些业务(比如下载)在未登录的情况下也可使用。

越权访问

用户可以直接访问非权限范围内的页面。

越权使用业务

某些场景下,攻击者修改某些规律性强的 GET、POST、Cookie 参数(比如用户名),即可使用其他用户的功能。


用户枚举

登录页面可枚举用户名

当用户名错误的时候,登录页面会返回“用户名错误、用户不存在”等。

特定功能页面的用户枚举

某些功能可以暴力枚举用户名等参数。


短信资源耗尽

发送短信功能缺少验证码,可使用脚本批量发送短信,使得短信资源耗尽、目标手机号收到大量垃圾短信。


验证码缺陷

图形验证码可重复使用

后台进行验证识别后没有销毁 Session,导致可以通过重放数据包来对账号密码等进行爆破。

用客户端 Session 储存验证码

比如 Flask 框架在默认情况下把 Session 以 Cookie 的形式储存于客户端,服务端不设储存,服务端的密钥只对 Session 进行签名校验,以防篡改。

但是对 Session 进行解密却无需密钥,这便导致了 Flask Session 的内容是可以被客户端解密并读取的。

由于大部分场景下,图形验证码的值是储存在 Session 中的,导致不少 Flask 开发人员在不了解框架特性的情况下直接使用 Session 储存图形验证码的值。

攻击者使用固定的两套算法,即可解密 Flask Session,使得验证码失效。


仅由前端校验信息格式

后台对手机、邮箱等信息的格式不进行校验,仅靠前端进行验证。

本文链接:https://blog.cindemor.com/post/logic-vuln.html

-- EOF --