ToB企服应用市场:ToB评测及商务社交产业平台
标题:
不可思议但又无处不在的漏洞,WEB安全基础入门—业务逻辑漏洞
[打印本页]
作者:
八卦阵
时间:
2022-6-22 12:44
标题:
不可思议但又无处不在的漏洞,WEB安全基础入门—业务逻辑漏洞
欢迎关注订阅专栏!
WEB安全系列包括如下三个专栏:
《WEB安全基础-服务器端漏洞》
《WEB安全基础-客户端漏洞》
《WEB安全高级-综合利用》
知识点全面细致,逻辑清晰、结合实战,并配有大量练习靶场,让你读一篇、练一篇,掌握一篇,在学习路上事半功倍,少走弯路!
欢迎关注订阅专栏!
专栏文章追求对知识点的全面总结,逻辑严密,方便学习掌握。力求做到看完一篇文章,掌握一类漏洞知识。让读者简洁高效的掌握WEB安全知识框架,推开入门深造的大门。
绝不为了追求文章数量,彰显内容丰富而故意拆散相关知识点。避免读者沉迷在无尽的技巧中而迷失进阶的道路!本系列的目标是授之以渔,而不仅仅是技巧的堆砌。
每篇文章均配有大量靶场,点击文章中靶场名即可跳转练习(靶场在网站注册即可免费使用)。
欢迎订阅专栏!建议学完两个基础专栏,再学习高级哦~
不可思议但又无处不在的漏洞,WEB安全基础入门—业务逻辑漏洞
1. 什么是业务逻辑漏洞
2. 漏洞产生的原因
3. 漏洞实际利用
1. 错误的信任客户端验证
2. 非常规输入数据不能被正确处理
3. 设计时错误预测用户操作
4. 漏洞实例
1. 对客户端控件的过度信任([Excessive trust in client-side controls](https://portswigger.net/web-security/logic-flaws/examples/lab-logic-flaws-excessive-trust-in-client-side-controls))
2. 双因素认证逻辑缺陷([2FA broken logic](https://portswigger.net/web-security/authentication/multi-factor/lab-2fa-broken-logic))
3. 高级逻辑漏洞([High-level logic vulnerability](https://portswigger.net/web-security/logic-flaws/examples/lab-logic-flaws-high-level))
4. 低级逻辑缺陷([Low-level logic flaw](https://portswigger.net/web-security/logic-flaws/examples/lab-logic-flaws-low-level))
5. 对异常输入的处理不一致([Inconsistent handling of exceptional input](https://portswigger.net/web-security/logic-flaws/examples/lab-logic-flaws-inconsistent-handling-of-exceptional-input))
6. 不一致的安全控制([Inconsistent security controls](https://portswigger.net/web-security/logic-flaws/examples/lab-logic-flaws-inconsistent-security-controls))
7. 两用终端上的弱隔离([Weak isolation on dual-use endpoint](https://portswigger.net/web-security/logic-flaws/examples/lab-logic-flaws-weak-isolation-on-dual-use-endpoint))
8. 密码重置逻辑缺陷([Password reset broken logic](https://portswigger.net/web-security/authentication/other-mechanisms/lab-password-reset-broken-logic))
9. 双因素验证绕过([2FA simple bypass](https://portswigger.net/web-security/authentication/multi-factor/lab-2fa-simple-bypass))
10. 工作流验证不足([Insufficient workflow validation](https://portswigger.net/web-security/logic-flaws/examples/lab-logic-flaws-insufficient-workflow-validation))
11. 通过特殊状态绕过身份验证([Authentication bypass via flawed state machine](https://portswigger.net/web-security/logic-flaws/examples/lab-logic-flaws-authentication-bypass-via-flawed-state-machine))
12. 业务规则的执行存在缺陷([Flawed enforcement of business rules](https://portswigger.net/web-security/logic-flaws/examples/lab-logic-flaws-flawed-enforcement-of-business-rules))
13. 无限货币的逻辑缺陷([Infinite money logic flaw](https://portswigger.net/web-security/logic-flaws/examples/lab-logic-flaws-infinite-money))
14. 通过加密-明文绕过身份验证([Authentication bypass via encryption oracle](https://portswigger.net/web-security/logic-flaws/examples/lab-logic-flaws-authentication-bypass-via-encryption-oracle))
1. 什么是业务逻辑漏洞
是业务逻辑在设计或具体实现上的缺陷导致攻击者可以利用的漏洞。攻击者通常使程序处于不寻常的“状态”,导致业务逻辑不能正确处理,在这种情况下利用现成的逻辑或函数达成恶意的目标。
该类漏洞使用自动漏洞扫描器检测很难发现。因此,逻辑缺陷通常是测试人员的一个很好的目标。
业务逻辑漏洞,往往对技术要求不高,但是需要测试人员有异想天开的脑洞,本文可重点看4.漏洞实例,拓宽下脑洞,见识下一个个不可思议,不可理喻的业务逻辑漏洞。
2. 漏洞产生的原因
设计和开发人员错误的预估用户的行为,导致用户实际操作与程序设计逻辑偏离。
简单举例:开发人员认为用户都是通过浏览器进行交互访问,很多验证可能仅依靠客户端的验证。而没有考虑很多“用户”使用拦截代理进行各种操作。这就造成了大量验证被绕过,数据报文内容可能被任意篡改的情况。
程序功能过于复杂,没有一个团队能完整了解所有功能具体实现,导致了错误的预估其他功能,从而产生偏差,易被攻击者利用。
一个开发小组错误的认为另一功能产生的输入数据是可靠的而未进行全面验证。而那个功能开发团队却以为后续处理会进行验证和过滤…
3. 漏洞实际利用
1. 错误的信任客户端验证
一个根本性的错误假设是,用户只会通过提供的Web界面与应用程序交互。这就像一眼看到未来的“美女老婆”,作为优质青年怎么可能旁观呢,早就各种套路深入交流了。现实如此,网络世界更是这般。
例题1、2
2. 非常规输入数据不能被正确处理
应用程序往往在
管理库存、应用预算限制、触发供应链阶段
对用户数据的内容进行验证,判断是否符合各项规则条件限制,最终决定能否接受。开发人员要针对各种可能的输入类型和场景进行验证功能的实现。
比如,对数量类型的输入,有没有考虑负数的情况呢。比如下面的验证逻辑代码
[code]$transferAmount = $_POST['amount'];$currentBalance = $user->getBalance();if ($transferAmount
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4