SRC之逻辑漏洞挖掘
挖掘逻辑漏洞一般方法:
1. 发现网站所提供的功能模块;
2. 针对具体的功能确定业务流程;
3. 拦截HTTP/HTTPS请求,分析其参数的含义;
4. 修改参数值,尝试出发逻辑漏洞;
5. 返回第2步骤,对其他功能继续测试。
越权漏洞
越权漏洞可能存在的地方:增、删、改、查、详情、导出等功能点。
根据不同的维度可分为:水平越权(也称平行越权)、垂直越权和交叉越权。
水平越权:权限类型不变,权限ID改变(同一角色不同用户)。出现在同一个角色上,系统只验证了能访问数据的角色而没有对角色内的用户做细分,也没有对数据的子集做细分,因此缺乏一个用户到数据之间的对应关系。例如:在查看自己的信息时,发现URL中或者http请求头中有一个表示用户ID的参数:userID,通过修改参数userID的值后可以查看同一角色的其他用户的信息。
垂直越权:权限ID不变,权限类型改变(同一用户不同角色)。出现在不同角色上,一般来说高权限角色可以访问低权限角色的资源,而低权限角色访问高权限角色的资源原则被禁止,如果一个本属于低权限角色的用户通过一些方法能够获得高权限角色的能力,则发生垂直越权。例如:普通用户登录时,发现cookie中有一个表示角色的参数:roleID,通过修改roleID值为1或者0(根据具体情况来定),登录成功并可以使用管理员权限。
交叉越权:权限类型改变,权限ID也改变。
密码找回逻辑漏洞
例如:输入要找回密码的账号和手机号码,点击“获取验证码”,同时抓包,然后在返回包中看到认证的验证码,这样无需得到用户的手机即可得到该用户的验证码,最后输入新密码即可。
密码找回逻辑漏洞测试一般流程:
1. 选择不同的密码找回方式来尝试正常的密码找回流程,并记录所有数据包;
2. 分析数据包,找到敏感部分;
3. 分析后台找回密码机制所采用的验证手段;
4. 修改数据包,验证推测。
支付逻辑漏洞
1. 修改支付价格
购买商品一般分为三个步骤:(1)订购 ;(2)确认购买信息 ;(3)付款。在整个购买过程中都可以测试(金额尝试小数目或负数)。
2. 修改支付状态
已支付、未支付。
3. 修改购买数量
将数量修改负数。
4. 修改附属值
在很多购买的时候可以利用积分或者优惠卷等进行代替金额支付。
(1)修改代金劵金额:用代金劵进行消费一般出现在购买商品的第二个步骤:确认购买信息。
(2) 修改代金劵金额及业务逻辑问题:修改金额后支付失败,可能在订单处找到金额已变更的未支付订单,此时再完成支付。
(3)修改积分金额:修改积分数量或积分抵扣金额为任意数或负数。
5. 修改支付接口
一些网站支持多种支付,有自家的支付工具也支持第三方的支付工具,每个支付接口值皆不一样,若逻辑设计不当,当对支付进行抓包修改其支付接口为不存在的接口时,可能支付成功。
6. 多重替换支付
产生商品和价格皆不一样的两个订单,若服务端没有做好相关验证,则在支付的过程中抓包,修改其订单值为另一个订单值,最后支付就可实现用订单一的价格买到订单二的商品。
7. 最小额支付
修改金额往往都是0.01或者负数,但有一些情况是只支持正整数或有最小金额支付的限制,若用0.01去测试失败后放弃,则会错过。
8. 最大值支付
将支付金额或者附属值(代金劵金额,积分)修改为最大值,比如,999999999,若这里逻辑设计有问题,那么支付金额会变为0。
9. 越权支付
在支付当中会出现当前用户的ID,比如,userID=xxx,如果没有加以验证,同时支付也仅是一次性支付没有要求输入支付密码的机制时,那么可以修改用户ID为其他用户的ID,达到用别人的账号完成支付。
10. 修改优惠价格
比如一些商品有优惠价,那么可以尝试在支付时抓包修改优惠价格。
指定账户恶意攻击
有些网站为防止爆破限定了登陆密码输入错误次数,若达到最大值则锁定账户。虽然可以防止爆破攻击,但若攻击者的目的就是让用户无法正常使用呢。例如:线上拍卖,搞对手。
逻辑漏洞防御措施
1. 验证码策略
(1)验证码至少是6位数字,且有时间限制,获取次数限制和错误次数限制;
(2)验证码验证要放到服务端执行,不能将验证码返回前端;
(3)若验证码放在前端,则必须次用加密策略;
(4)多步校验,比如,找回密码第一步验证了,最后一步提交时也需要验证。
2. 权限策略
(1)登陆凭证要时刻验证,不能只在登录接口处进行登录验证,要在任何需要登陆权限的地方进行验证(Cookie、ssid、token等);
(2)用户操作要进行对应的权限检查,不能只根据操作参数或链接执行功能;
(3)Cookie要进行严格加密,并与用户session绑定;
(4)采用“最小权限原则”进行访问控制。
3. 密钥签名策略
(1)邮箱找回密码的功能,其认证参数要唯一且不可预测,尽量减少不必要的参数;
(2)支付功能一定要使用严格的签名算法,避免任何参数的修改。
归纳总结
1. 身份认证安全
(1)暴力破解
在没有验证码限制或一次验证码可以多次使用的地方,可以使用已知用户对密码进行暴力破解,工具或脚本:BurpSuite、htpwdsuite、hydra;
(2)Session和Cookie
会话固定攻击,利用服务器的session机制,借他人之手获得认证和授权来冒充他人;cookie仿冒,修改cookie中的某个参数可以登录其他账户;
(3)弱加密
2. 业务一致性
(1)手机号篡改
抓包修改手机号参数值为其他号码号码尝试,例如,在查询页面,输入自己的号码然后抓包修改手机号码参数值为其他人的号码,查看是否能查看他人信息;
(2)邮箱或者用户ID号篡改
抓包修改用户ID或者邮箱参数值为其他用户ID或邮箱;
(3)订单ID篡改
查看自己的订单,抓包修改其订单ID(加减1),查看是否能查看其他订单信息;
(4)商品编号篡改
例如,积分兑换处,100个积分只能兑换商品为001,1000个积分能兑换 商品002,在用100个积分兑换商品时,抓包将商品编号改为002,用低积分兑换高积分商品。
3. 业务数据篡改
(1)金额数据篡改
将金额任意修改,查看是否能以修改后的金额完成业务流程;
(2)商品数量篡改
将购买数量改为负数等,提交查看是否能以修改后的数量完成业务流程;
(3)最大数量限制突破
在限制用户购买数量的场景下,将数量修改大于限定数量,查看是否能以修改后的数量完成业务流程;
(4)本地js参数修改
部分应用程序通过javascript处理用户提交的请求,通过修改javascript脚本,测试修改后的数据能否影响用户。
4. 密码找回
(1)本地验证
在本地验证服务器的返回信息中,确定是否执行重置密码,其返回信息是可控的内容。例如,发送短信等验证信息的动作在本地进行,则可以抓取返回相应包通过修改返回包中的信息进行控制。
实例:oppo重置任意用户密码漏洞(4)(http://wy.zone.ci/bug_detail.php?wybug_id=wooyun-2014-069987);看我如何重置乐峰网供应商管理系统任意用户密码(管理员已被重置)(http://wy.zone.ci/bug_detail.php?wybug_id=wooyun-2014-083035);OPPO修改任意帐号密码-2(http://wy.zone.ci/bug_detail.php?wybug_id=wooyun-2013-020425);OPPO修改任意帐号密码-3(http://wy.zone.ci/bug_detail.php?wybug_id=wooyun-2013-020532)
(2)服务器验证
a. 最终提交步骤;
b. 服务器验证内容可控;实例:AA拼车网之任意密码找回2(http://wy.zone.ci/bug_detail.php?wybug_id=wooyun-2014-080278)
c. 服务器验证逻辑是否为空。实例:某政企使用邮件系统疑似存在通用设计问题(http://wy.zone.ci/bug_detail.php?wybug_id=wooyun-2014-088927)
(3)用户凭证暴力破解
爆破验证码等。实例:微信任意用户密码修改漏洞(http://wy.zone.ci/bug_detail.php?wybug_id=wooyun-2012-011720);当当网任意用户密码修改漏洞(http://wy.zone.ci/bug_detail.php?wybug_id=wooyun-2012-011833)
(4)返回凭证
a. url返回验证码及token:实例:走秀网秀团任意密码修改缺陷(https://www.uedbox.com/post/47390/);天天网任意账户密码重置(二)(https://www.uedbox.com/post/31870/)
b. 密码找回凭证在页面中:实例:sohu邮箱任意用户密码重置(https://www.uedbox.com/post/47838/)
c. 返回短信验证码:实例:新浪某站任意用户密码修改(验证码与取回逻辑设计不当)(https://www.uedbox.com/post/27436/)
(5)用户凭证有效性
a. 短信验证码:尝试在返回包中将手机号修改为自己的手机号,尝试获取验证码。实例:OPPO手机重置任意账户密码(3)(https://www.uedbox.com/post/33001/)
b. 邮箱token:实例:身份通任意密码修改-泄漏大量公民信息(https://www.uedbox.com/post/43894/)
c. 重置密码token:实例:魅族后台绕过验证重置任意ID邮箱(可控制魅族老板账号)(https://www.uedbox.com/post/36297/)
(6)邮箱弱token
a. 时间戳的md5:实例:奇虎360任意用户密码修改漏洞(https://www.uedbox.com/post/45961/)
b. 用户名:实例:中兴某站点任意用户密码重置漏洞(https://www.uedbox.com/post/16156/)
c. 服务器时间
(7)token生成可控
观察重置密码步骤数据包中字符串,是否和验证身份步骤中的字符串相同。相同-->尝试绕过验证步骤,不同-->尝试token可控。实例:天天网任意重置用户账号密码之第三弹(https://www.uedbox.com/post/24042/)。
(8)重新绑定
a. 手机绑定:实例:12308可修改任意用户密码(http://wy.zone.ci/bug_detail.php?wybug_id=wooyun-2014-081467);网易邮箱可直接修改其他用户密码(http://wy.zone.ci/bug_detail.php?wybug_id=wooyun-2012-08307)
b. 邮箱绑定:实例:中国工控网任意用户密码重置漏洞(https://www.uedbox.com/post/27047/);某彩票设计缺陷可修改任意用户密码(http://wy.zone.ci/bug_detail.php?wybug_id=wooyun-2015-092319)
(9)用户身份验证
a. 账号与手机号的绑定:实例:上海电信通行证任意密码重置(http://wy.zone.ci/bug_detail.php?wybug_id=wooyun-2014-075941)
b. 账号与邮箱账号的绑定:实例:和讯网修改任意用户密码漏洞(http://wy.zone.ci/bug_detail.php?wybug_id=wooyun-2015-091216);魅族的账号系统内存在漏洞可导致任意账户的密码重置(http://wy.zone.ci/bug_detail.php?wybug_id=wooyun-2014-078208)
(10)找回步骤
用自己手机号通过第一步短信验证后抓包,将手机号参数改成别的手机号,看是否能绕过此账号的第一步的短信验证码验证。实例:https://www.uedbox.com/post/24634/;https://www.uedbox.com/post/35431/。
(11)注册覆盖
注册重复的用户名。实例:中铁快运奇葩方式重置任意用户密码(admin用户演示)(http://wy.zone.ci/bug_detail.php?wybug_id=wooyun-2014-088708)
(12)session覆盖
当同一个浏览器打开两个页面登录两个用户,第二个用户会覆盖第一个用户,由于同一个浏览器一般公用session,所以第二次登录的时候把第一次的sessionid覆盖掉了。
实例:https://blog.csdn.net/zhangge3663/article/details/102814176;https://www.cnblogs.com/kaibindirver/p/12056526.html
(13)注入
在找回密码处存在注入漏洞。实例:用友人力资源管理软件(e-HR)另一处SQL注入漏洞(通杀所有版本)(http://wy.zone.ci/bug_detail.php?wybug_id=wooyun-2014-068060)
SRC之逻辑漏洞挖掘相关推荐
- SRC混子的漏洞挖掘之道
福利:[网络安全重磅福利:入门&进阶全套282G学习资源包免费分享 !] 前期信息收集 还是那句老话,渗透测试的本质是信息收集,对于没有0day的弱鸡选手来说,挖SRC感觉更像是对企业的资产梳 ...
- 业务逻辑漏洞挖掘-某网站绕过下载付费机制进行下载文件
某网站绕过下载付费机制进行下载文件 学习漏洞也学了一段时间了,对于一些常见的漏洞也就在靶场上练习.靶场毕竟是靶场,挖漏洞还是得尝试在一些真实的网站进行练习.于是,不多说了,虚拟机启动,burpsuit ...
- 逻辑漏洞挖掘初步总结篇
逻辑漏洞 在我理解中,逻辑漏洞是指由于程序逻辑输入管控不严,导致程序不能够正常处理或处理错误,一般出现在登录注册.密码找回.信息查看.交易支付金额等. 我将所有逻辑漏洞的问题分为前端和后端两个部分,总 ...
- [漏洞实战] 逻辑漏洞挖掘
目录 1.逻辑漏洞概述 2.业务场景分类 2.1 金融类 2.2 电商类 2.3 服务类 2.4 社交类
- Web渗透测试之逻辑漏洞挖掘
1.逻辑漏洞特点:简单.复杂 1.1.利用工具简单: 数据包抓取工具(Burpsuit.fiddler等) 1.2.思路复杂: 核心:绕过真实用户身份或正常业务流程达到预期目的. 1.2.1.用户身份 ...
- 逻辑漏洞挖掘之——逻辑漏洞概述
逻辑漏洞概述 SQL 注入,文件上传,代码执行,我们把渗透一个站点的所有重点都放在了这些可以一步到位的漏洞上,我们把这些漏洞称之为高危漏洞,这些漏洞在工具化盛行的今天,已经越来越难见到了.现有的工具检 ...
- 逻辑漏洞挖掘——任意账号密码(用户名/前端验证/激活验证/批量注册)
目录 1.未验证邮箱/手机号 2. 批量注册 3.前端验证审核绕过
- SRC漏洞挖掘之偏门资产收集篇
写这篇文章的目得,就是跟大家分享一下平时我挖src漏洞的一些经验,当自己挖到某个站点的漏洞时,往往就会欣喜若狂的往src平台上提交,得到的结果却是 "漏洞已重复,感谢提交" ,其实 ...
- SRC众测挖洞之支付逻辑漏洞的奇淫技巧
文章目录 前言 巧用支付页面 低价签约漏洞 低价会员升级 循环利用优惠券 并发请求测试 并发领取奖品 并发多次签到 并发转账提现 其他支付漏洞 异常支付金额 金额数量溢出 更多支付漏洞 总结 前言 最 ...
最新文章
- SugarCRM ListView查询中加入默认条件
- block,inline和inline-block概念和区别
- Linux C编程--进程间通信(IPC)2--信号处理函数
- 用Jmeter实现SQLServer数据库的增删查改
- VScode中Python的交互式命令环境使用笔记
- 洛谷 - P4323 [JSOI2016]独特的树叶(树上哈希+换根dp)
- ant app 心电监测_医疗级心电健康手表,随时随地监测你的健康,心电手表H1手表评测...
- CentOS上安装SQL Server vNext CTP1
- 2014年值得关注的10个开源项目 上
- XSS漏洞(跨站脚本)
- 得益于数据中心芯片业务提升,AMD公司财务表现令投资者欣喜
- 如何官网下载最新的谷歌chrome浏览器离线安装包
- tftp服务器的配置文件,tftp 服务器 系统配置文件
- List中存放list
- 便捷开票二维码应用规范中的那些坑
- 阿里云服务器使用宝塔面板管理以及项目部署
- 计算机专业毕业后大致的工作方向
- 嘉应大学黄林鑫计算机学院,林鑫-中国科学院大学-UCAS
- 彩屏显示入门:我要五彩斑斓的黑 | 用Arduino玩转ESP32与掌控板系列
- 华为od机考攻略,参考资料
热门文章
- 【一、前端开发基础】HTML+CSS基础
- GPS坐标系(WGS84)、火星坐标系(GCJ02)、百度坐标系(BD-09)的相互转换
- 股票的量化分析模型是怎样的?
- 详解ODX诊断数据库——ODX-V(整车网络拓扑)
- Github 代码热力图,一键填充
- java 宏开关美元换加_把数字转变成美元大写的宏
- Oracle merge into语法修改为MySQL语法解决方案
- 到底什么是Cortex、ARMv8、arm架构、ARM指令集、soc?一文帮你梳理基础概念【科普】
- 使用SFTPGo搭建SFTP服务器
- Raid5损坏两块盘