10.2 逻辑错误漏洞
逻辑错误漏洞是指由于程序逻辑不严谨或逻辑太复杂,导致一些逻辑分支不能够正常处理或处理错误。通俗地讲:一个系统的功能太多后,程序开发人员就难以思考全面,对某些地方可能有遗漏,或者未能正确处理,从而导致逻辑漏洞。逻辑漏洞也可以说是程序开发人员的思路错误、程序开发人员的逻辑存在漏洞。
逻辑错误漏洞是非常隐蔽的,它不像SQL注射、XSS跨站脚本、命令执行漏洞有鲜明的标识,自动化扫描器可以定义一系列的规则识别出这些漏洞,而逻辑漏洞一般出现在功能(业务流程)上,这是漏洞扫描工具无法识别的。
逻辑漏洞的危害也是巨大的,根据不同的场景所产生的效果也不同,比如,任意密码修改、越权访问、密码找回、交易支付金额修改等。
10.2.1 挖掘逻辑漏洞
逻辑漏洞只出现于业务流程中(模块功能),也就是说,网站的任何部分都有可能存在着逻辑漏洞。比如,修改个人资料就完全可能出现逻辑漏洞。
黑客在挖掘逻辑漏洞时的操作步骤如下。
① 发现网站所提供的功能模块。比如:修改密码、找回密码、修改个人资料等功能。
② 针对具体的功能确定业务流程,详细划分具体步骤,以购物为例介绍,购物流程如下。
- 挑选商品,商品可多选;
- 立刻购买,在"立刻购买"按钮旁边可以选择购买数量、购买样式等;
- 显示购买信息,在此步骤可以给卖家留言,填写购买数量、使用优惠券、匿名购买、找人代付等;
- 提交订单;
- 付款。
③ 拦截HTTP/HTTPS请求,分析其参数项的含义;
④ 修改参数值,尝试触发逻辑漏洞;
⑤ 返回第②步骤,对其他功能继续测试;
简单地说,黑客挖掘逻辑漏洞有两个重点,就是业务流程和HTTP/HTTPS请求篡改。下面将详细介绍常见的逻辑漏洞。
本文选自《Web安全深度剖析》第十章,本站经电子工业出版社和作者的授权。
版权声明:51Testing软件测试网获电子工业出版社和作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。
相关文章: