简介
逻辑漏洞是指由于程序逻辑不严或逻辑太复杂,导致一些逻辑分支不能够正常处理或处理错误,一般出现在任意密码修改(没有旧密码验证)、越权访问、密码找回、交易支付金额等。
常见逻辑漏洞
01 验证码突破
1.1 验证码暴力破解测试
使用burp对特定的验证码进行暴力破解!
1.2 验证码时间次数测试
①:抓取携带验证码的数据包不断重复提交,例如:在投诉建议处输入要投诉的内容信息,及验证码参数,此时抓包重复提交数据包,查看历史投诉中是否存在重复提交的参数信息。
②:尝试重放发送验证码的包,查看手机是否在短时间内收到了多条短信,是的话则存在短信轰炸漏洞,这是因为后端没有对发送手机短信做时间限制
1.3 验证码客户端回显测试
①:验证码客户端回显测试
当客户端有需要和服务器进行交互,发送验证码时,即可使用firefox按F12调出firebug就可看到客户端与服务器进行交互的详细信息,可以直接看到短信验证码。
1.3 验证码绕过测试
验证码漏洞存在场景:
●验证码刷新之后,而历史刷新的验证码还是可以继续使用
●验验证码使用过后不刷新,时效性不过期,可以一直复用
●验证码使用过后不刷新,时效性不过期,可以一直复用
●很多验证码的显示很简单,容易被机器识别
●有些手机短信验证码都为 4-8位 纯数字的验证码,在接口没有任何限制的情况下是可以直接爆破的
●在未上线前为了方便测试加了888888、000000这样的万能验证码但是上线后没去删除测试的内容导致被恶意利用
02 身份认证安全
2.1 暴力破解
2.2 session & cookie类
会话固定攻击:利用服务器的session不变机制,借他人之手获得认证和授权,冒充他人。
2.3 弱加密
03 业务一致性安全
3.1 手机号篡改
抓包修改手机号码参数为其他号码尝试,例如在办理查询页面,输入自己的号码然后抓包,修改手机号码参数为其他人号码,查看是否能查询其他人的业务。
3.2 邮箱或者用户篡改
抓包修改用户或者邮箱参数为其他用户或者邮箱
3.3 订单id篡改
查看自己的订单id,然后修改id(加减一)查看是否能查看其它订单信息
3.4 商品编号篡改
例如积分兑换处,100个积分只能换商品编号为001,1000个积分只能换商品编号005,在100积分换商品的时候抓包把换商品的编号修改为005,用低积分换区高积分商品
3.5 用户id篡改
抓包查看自己的用户id,然后修改id(加减1)查看是否能查看其它用户id信息
04 业务数据篡改
4.1 金额数据篡改
抓包修改金额等字段,例如在支付页面抓取请求中商品的金额字段,修改成任意数额的金额并提交,查看能否以修改后的金额数据完成业务流程
4.2 商品数量篡改
抓包修改商品数量等字段,将请求中的商品数量修改成任意数额,如负数并提交,查看能否以修改后的数量完成业务流程。
4.3 最大数限制突破
很多商品限制用户购买数量时,服务器仅在页面通过js脚本限制,未在服务器端校验用户提交的数量,通过抓包修改商品最大数限制,将请求中的商品数量改为大于最大数限制的值,查看能否以修改后的数量完成业务流程。
05 密码找回漏洞
注:密码找回逻辑测试的一般流程
①:先尝试正确的密码找回流程,选择不同的找回方式,记录所有数据包
②:分析数据包,找到敏感部分,例如找回密码或重置密码时的参数
③:分析后台找回机制所采用的验证手段
④:修改数据包验证推测
5.1 用户凭证暴力破解
5.2 返回凭证
返回凭证可以修改遍历任意用户,或返回凭证可抓包获得,或凭证可以本地构造
总结
更多分享微信搜索“安全info”公众号
添加群主进“安全交流”微信群