本帖最后由 深信服认证 于 2022-9-21 15:51 编辑
本期引言:随着《网络安全法》的实施,企业和用户安全意识的提高,Web安全已经成为社会各界重点关注的方向,诸如使用安全开发框架、部署安全防护设备等防护手段的使用,使得网站的常规Web漏洞越来越少。但“逻辑漏洞”一词更加热门,很可能成为Web漏洞的主战场。在OWASP Top 10中,逻辑漏洞被称为“不安全的对象引用和功能级访问控制缺失”。因此,通过逻辑漏洞的学习,掌握逻辑漏洞的原理,以及与常规Web漏洞的区别十分重要。
一、什么是逻辑漏洞
逻辑漏洞是攻击者利用业务的设计缺陷,获取敏感信息或破坏业务的完整性。逻辑漏洞并不是向程序恶意构造语句,而是利用程序的逻辑处理不严或代码问题,导致一些逻辑分支处理错误。逻辑漏洞是因为代码背后是人的逻辑,人难以思考全面,更容易犯错,从而导致逻辑漏洞。
逻辑漏洞产生的流量多数为合法流量,传统的安全防御设备和措施收效甚微,一般的防护手段或设备无法阻止,导致了逻辑漏洞成为企业防护中的难题。所以逻辑漏洞造成的危害巨大,可能造成企业资产损失和名誉受损。
逻辑漏洞分类: 逻辑漏洞的覆盖面很广,大致分为以下几类: 二、逻辑漏洞实例
支付漏洞是指系统的支付流程中存在业务逻辑层面的漏洞。网购的流程通常为:选择商品和数量 --> 选择支付方式 --> 生成订单 --> 订单支付 --> 完成订单。在整个过程中,最常见的支付漏洞通常由于服务器端对客户端请求数据中的金额、数量、优惠券参数等敏感信息校验不严格导致,带来“0元购”、“1分购”等漏洞,会对商家带来大量的经济损失。以支付漏洞中的修改商品编号为例,带大家体验下支付漏洞的过程。
2、在购物之前先登录购物账号,也可以自己注册账号。
3、在分类侧点击“手机”,跳转到手机一类的商品,任意选择一款手机点击,查看该商品的id,比如苹果手机,商品id是54。
4、返回首页,点击下方的水果中的苹果商品,可以看到该商品的id是42。
5、打开BurpSuite,配置代理,点击“立即购买”,抓取数据包。
6、将数据包中水果苹果的“id”修改为苹果手机的商品id【54】。
7、击“Forward”,转发数据包。切换到浏览器,关闭代理。可以看到订单信息中,商品名称是手机,单价是水果中的苹果单价。注意:在挖掘支付逻辑漏洞的时候一般支付方式为在线支付。
8、点击“提交订单”,可以看到支付的金额已经是水果苹果的价格。
9、点击左侧的“订单管理”,成功可以看到该订单,以水果的低价购买成功高价的手机。
总结 通过此文, 掌握电子商务网站支付流程中存在的业务逻辑层面的漏洞。在系统的支付流程中由于服务器端没有对客户端请求数据中商品编号做校验,利用该漏洞造成低价购买高价产品,导致产生支付逻辑漏洞。 练习题 自行搭建支付逻辑漏洞环境,复现该实验,从而思考如何防御支付漏洞。
本期作者,石岩,深信服培训认证中心主任,深信服安全服务认证专家(SCSE-S),产业教育中心资深讲师,中国网络空间安全协会会员,深圳大学专业学位研究生校外导师;曾任国内知名安全厂商安全认证负责人、安全服务工程师、信息安全咨询顾问、信息安全讲师;多次为政府、运营商、企业、本科、高职学员以及高校老师进行信息安全培训;多次组织、参与职业能力评价认证工作,擅长Web安全、渗透测试、操作系统等多个方向的课程。 |