渗透测试业务逻辑测试汇总—通用篇

admin 2021年5月13日01:42:40评论151 views字数 3182阅读10分36秒阅读模式

本文作者:AngusMs08067实验室 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+人已关注加入我们

渗透测试业务逻辑测试汇总—通用篇

本文始发于微信公众号(Ms08067安全实验室):渗透测试业务逻辑测试汇总—通用篇

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年5月13日01:42:40
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   渗透测试业务逻辑测试汇总—通用篇http://cn-sec.com/archives/292294.html

发表评论

匿名网友 填写信息