概述
本文作者:Angus(Ms08067实验室 SRSP TEAM小组成员)
0x00:前言
在漫漫渗透路中,“业务逻辑漏洞“一词,想必各位都不陌生。行业内统一把程序逻辑不严谨或复杂导致的逻辑错误,造成的一系列危害的问题称为逻辑漏洞。业务逻辑漏洞覆盖面极广,可以说存在于目标的各个方方面面。网上对于业务逻辑的文章多到数不清,但是能尽可能详细的归纳总结的却少之又少。因为一人一个思想,对于不同人员开发的系统,逻辑问题也各不相同,因此菜鸡我主要是针对于通用的模块的测试点,尽可能的细化的整理。能让大家脑海中能有个大致的测试思维导图。
0x01:通用测试点
用户类
主要包含用户的登录、密码找回、个人信息查阅等测试点
登录模块
用户名枚举
密码爆破
登录绕过 //篡改服务器返回包的状态码信息
登录凭证未及时失效 //登录成功后,服务器返回的用户凭证未及时失效或凭证时间过长,导致可重复利用进行登录。
登录越权 //篡改服务器返回包的用户 id 参数,来登录他人账号、或请求包的用户 ID
空密码登录//抓包将 password 字段改为空进行发送
SQL 注入//存在注入,可利用万能密码进行登陆等
Cookie 仿冒攻击//通过修改 Cookie 中的某个参数来实现登录其他用户
Session 会话固定攻击
CookieSession 机制缺陷//网站会利用 Cookie 是否为空、Session 是否为 true 来
判断用户是否可以登录,只要构造一个 Cookie 或 Session 为 true 就可以绕过认证登录
注册模块
用户批量注册
用户注册信息覆盖 //通过对已存在的账号再次进行注册,从而对原有的账号注册信息进行覆盖
密码找回、重置模块
前端校验绕过导致任意重置 //篡改服务器返回包状态码
验证码绕过//详情见‘验证码类’
重置密码流程跳过 //篡改请求包参数,跳过校验步骤,直接对目标账号进行密码重置
越权篡改他人密码//先进行合法校验再篡改 ID 为他人用户进行越权重置
Session 覆盖 //同一浏览器,首先输入自己的账户进行邮箱密码找回,进入邮箱查看链接,接着输入他人账户,进行密码找回,返回刚刚自己的邮箱点击链接,由于 session 覆盖导致了,这个链接成为了修改他人密码的链接,成功修改他人密码
密保问题缺陷 // 验证逻辑可为空,通过密码保护问题找回密码,抓包,将密码保护问题删除,直接修改密码||密保问题答案直接暴露在页面源代码中
CSRF 攻击
个人信息模块
水平越权 //手机号、邮箱、密码等信息篡改,个人资料越权遍历查看
垂直越权 //同水平越权
CSRF 攻击
XSS 攻击
SQL 注入攻击
活动类
主要包含报名、参与游戏活动、邀请活动等测试点
请求重放 //批量报名,消耗活动资格、积分刷取等
XSS 蠕虫攻击
流程乱序 //跳过部分校验流程,进行报名、参加
短信内容可控 //比如好友邀请功能,可对短信内容进行编辑,进行钓鱼攻击
交易类
主要包含资金交易类型业务测试点
并发逻辑漏洞 //常见于购买限量商品、领取优惠券等功能上
支付绕过
交易金额/数量篡改 //修改对应参数、或替换订单 ID、商品 ID 等||金额负数、整数溢出等
订单号、收货地址等信息越权遍历、篡改
请求参数干扰 //金钱做了签名认证之后,修改后不通过,但是在里面仍然会有一个参数对金额产生影响导致问题产生
强制攻击 //强制攻击发生在暴力破解的情况下,如果一个商家运用一个自己的网店,接入第三方支付接口,由于设计上的不当导致商家与第三方支付约定的密钥 Key 可以单独被 MD5 加密,导致可以使用 MD5 碰撞技术对密钥进行破解,攻击者可以设计简单的密钥加密信息使得 MD5 加密是可以用 MD5 碰撞技术进行暴力破解
金额单位替换 //产生在 paypal 类似的国际支付的场景
收款人信息篡改 //收款二维码可控等
顺序执行缺陷 //正常的逻辑是 a-b-c-d 循环渐进的进行流程操作。这个时候就会产生逻辑问题:可以直接从中绕过某一个过程进入到下一步操作。如果说有一项是支付的操作,那么也就会产生支付绕过,如果说有一项是验证机制,就会绕过验证直接进入下一步。
订单未捆绑 //确定支付之后还可以将商品加入购物车:把商品放入购物车点击下单支付,会跳转到微信,支付宝等第三方支付平台。这个时候还可以继续在购物车中加入商品,支付结束之后,商家发放的商品是现在的购物车里面的东西
服务类
主要包含目标类型给予用户的服务功能测试点
业务服务接口未授权越权 //更多于 JS 里的接口泄露、FUZZ 模糊测试等
重放攻击 //在短信、邮件调用业务或生成业务数据环节中(类:短信验证码,邮件验证码,订单生成,评论提交等),对其业务环节进行调用(重放)测试
内容可控 //可对短信内容、邮件内容进行编辑,一般常见于邀请体验类功能
多余敏感信息回显 //针对于一些查询接口,可能返回该用户绑定的其他信息
流程跳过 //对于部分校验流程可绕过,例如一些开卡、贷款服务等业务申请等服务
CSRF 攻击
XSS 攻击
SQL 注入攻击
SSRF 攻击
任意文件上传
任意文件下载/读取
验证码类
主要包含重要操作点时的验证码机制测试点
图形验证码
图形验证码可自动识别进行暴力破解
图形验证码可复用导致暴力破解
图形验证码未合理校验导致暴力破解 //删除验证码参数、验证码为空或 cookie 中的值
图形验证码DDOS //篡改验证码的长宽参数
短信验证码
短信验证码弱可暴力破解 //主要应用于四位纯数字验证码||部分站点会采用固定的几种验证码组合,随机使用。
短信验证码绕过 //篡改返回包状态码绕过,主要应用于先进行短信验证码校验等场景(密码重置找回、登录、修改手机号等模块)||未正常进行短信验证码校验,例如短信验证码为空,成功进行登录
万能验证码(000000、111111、0000、1111) //主要是应用于登录功能,开发人员便于系统测试时,所设置的万能短信验证码,投产时并未删除,导致可被利用
短信验证码回显//1、网站页面返回2、服务器返回包返回
短信炸弹(重放攻击) //直接重放测试、或在手机号末尾添加空格,手机号前添加“+86、逗号、分号”、参数污染(再添加一个 phone 等参数)、删除或篡改 cookie 中的部分参数(服务器对于短信获取的限制取决于 cookie 中的部分参数)、请求参数修改大小写、返回包状态码篡改、参数遍历。
未绑定用户凭证 //通过他人手机号找回密码,抓包,将他人手机号替换成自己的手机号,获取验证码,提交后修改密码||通过自己手机号找回密码,获取验证码后抓包,将数据包中的 username 改为他人用户名,提交后成功修改他人密码
邮箱验证码
邮箱绑定缺陷 //通过邮箱找回密码,URL 链接中修改 用户 ID 为他人,邮箱不变,之后通过链接可以将他人账户绑定为自己的邮箱,之后通过邮箱找回密码
邮箱 token 缺陷(未绑定、可遍历枚举) //通过邮箱找回密码,访问链接重置密码,输入新密码后提交时抓包,虽然有 token,但是依然可以直接修改 用户 ID 进而修改他人密码||有的邮箱 token 可能会采用 Unix 时间戳 + md5 的方式,可自行爆破枚举,
邮箱校验绕过 //同短信验证码
0x02:小结
业务逻辑顾名思义,重点便在于逻辑上,当进行业务逻辑测试时,牢记一点“不放过、掌流程、理关系”,也就是在测试中,不要放过任何一个可操作参数,或者对不存在的参数进行 fuzz 测试,完整的对正常的业务流程走一遍,掌握并了解清楚其运行的整体过程,理清参数之间、业务之间的关系。
招新
微信联系方式:cos2606596924,
满足以下要求均可尝试
1.至少会一门编程语言
2.漏洞平台上提交过漏洞超过20个
3.每月一文章分享(考虑有些要上班)
扫描下方二维码加入星球学习
加入后会邀请你进入内部微信群,内部微信群永久有效!
目前25000+人已关注加入我们
最后
以上就是英勇御姐为你收集整理的渗透测试业务逻辑测试汇总—通用篇的全部内容,希望文章能够帮你解决渗透测试业务逻辑测试汇总—通用篇所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复