1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > SRC之逻辑漏洞挖掘

SRC之逻辑漏洞挖掘

时间:2021-09-08 16:47:18

相关推荐

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--069987);看我如何重置乐峰网供应商管理系统任意用户密码(管理员已被重置)(http://wy.zone.ci/bug_detail.php?wybug_id=wooyun--083035);OPPO修改任意帐号密码-2(http://wy.zone.ci/bug_detail.php?wybug_id=wooyun--020425);OPPO修改任意帐号密码-3(http://wy.zone.ci/bug_detail.php?wybug_id=wooyun--020532)

(2)服务器验证

a. 最终提交步骤;

b. 服务器验证内容可控;实例:AA拼车网之任意密码找回2(http://wy.zone.ci/bug_detail.php?wybug_id=wooyun--080278)

c. 服务器验证逻辑是否为空。实例:某政企使用邮件系统疑似存在通用设计问题(http://wy.zone.ci/bug_detail.php?wybug_id=wooyun--088927)

(3)用户凭证暴力破解

爆破验证码等。实例:微信任意用户密码修改漏洞(http://wy.zone.ci/bug_detail.php?wybug_id=wooyun--011720);当当网任意用户密码修改漏洞(http://wy.zone.ci/bug_detail.php?wybug_id=wooyun--011833)

(4)返回凭证

a. url返回验证码及token:实例:走秀网秀团任意密码修改缺陷(/post/47390/);天天网任意账户密码重置(二)(/post/31870/)

b. 密码找回凭证在页面中:实例:sohu邮箱任意用户密码重置(/post/47838/)

c. 返回短信验证码:实例:新浪某站任意用户密码修改(验证码与取回逻辑设计不当)(/post/27436/)

(5)用户凭证有效性

a. 短信验证码:尝试在返回包中将手机号修改为自己的手机号,尝试获取验证码。实例:OPPO手机重置任意账户密码(3)(/post/33001/)

b. 邮箱token:实例:身份通任意密码修改-泄漏大量公民信息(/post/43894/)

c. 重置密码token:实例:魅族后台绕过验证重置任意ID邮箱(可控制魅族老板账号)(/post/36297/)

(6)邮箱弱token

a. 时间戳的md5:实例:奇虎360任意用户密码修改漏洞(/post/45961/)

b. 用户名:实例:中兴某站点任意用户密码重置漏洞(/post/16156/)

c. 服务器时间

(7)token生成可控

观察重置密码步骤数据包中字符串,是否和验证身份步骤中的字符串相同。相同-->尝试绕过验证步骤,不同-->尝试token可控。实例:天天网任意重置用户账号密码之第三弹(/post/24042/)。

(8)重新绑定

a. 手机绑定:实例:12308可修改任意用户密码(http://wy.zone.ci/bug_detail.php?wybug_id=wooyun--081467);网易邮箱可直接修改其他用户密码(http://wy.zone.ci/bug_detail.php?wybug_id=wooyun--08307)

b. 邮箱绑定:实例:中国工控网任意用户密码重置漏洞(/post/27047/);某彩票设计缺陷可修改任意用户密码(http://wy.zone.ci/bug_detail.php?wybug_id=wooyun--092319)

(9)用户身份验证

a. 账号与手机号的绑定:实例:上海电信通行证任意密码重置(http://wy.zone.ci/bug_detail.php?wybug_id=wooyun--075941)

b. 账号与邮箱账号的绑定:实例:和讯网修改任意用户密码漏洞(http://wy.zone.ci/bug_detail.php?wybug_id=wooyun--091216);魅族的账号系统内存在漏洞可导致任意账户的密码重置(http://wy.zone.ci/bug_detail.php?wybug_id=wooyun--078208)

(10)找回步骤

用自己手机号通过第一步短信验证后抓包,将手机号参数改成别的手机号,看是否能绕过此账号的第一步的短信验证码验证。实例:/post/24634/;/post/35431/。

(11)注册覆盖

注册重复的用户名。实例:中铁快运奇葩方式重置任意用户密码(admin用户演示)(http://wy.zone.ci/bug_detail.php?wybug_id=wooyun--088708)

(12)session覆盖

当同一个浏览器打开两个页面登录两个用户,第二个用户会覆盖第一个用户,由于同一个浏览器一般公用session,所以第二次登录的时候把第一次的sessionid覆盖掉了。

实例:/zhangge3663/article/details/102814176;/kaibindirver/p/12056526.html

(13)注入

在找回密码处存在注入漏洞。实例:用友人力资源管理软件(e-HR)另一处SQL注入漏洞(通杀所有版本)(http://wy.zone.ci/bug_detail.php?wybug_id=wooyun--068060)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。