逻辑漏洞测试系列-支付逻辑漏洞

阅读须知

本文所述之信息,只作为网络安全人员对自己所负责的网站及服务器进行检测和维护等运维行为的参考。未经合法授权请勿使用本文中的工具、技术及资料,对任何计算机系统进行入侵活动。利用本文所提供的信息所造成的直接或间接后果,及其所引发的损失,均由使用者承担。本文所提供的工具及方法仅用于学习,禁止用于其他!

测试场景

淘夕夕王老板找到您,说发现有黑客只花了1元就在他在线商城里买走了5000元的商品,他想知道怎么做到的,你能帮他找到原因吗?

测试思路

  1. 访问在线购物网站:用户首先登录并进入目标在线购物网站,选择想要购买的商品。
  2. 抓包获取购买请求:使用抓包工具来捕获用户购买商品时向服务器发送的请求。
  3. 分析请求内容:分析捕获到的请求数据包,找到其中包含商品价格(price)的部分。
  4. 修改请求中的价格:在请求数据包中,将价格(price)字段的值修改为1元,即尝试将商品的价格篡改为极低的数值。
  5. 放行数据包:修改完请求数据包后,将其放行或发送回服务器。
  6. 期望低价购买成功:通过上述操作,用户成功以极低的价格(1元)购买到原本价格更高的商品。

测试案例

打开 TangGO 测试工具,找到 HTTP抓包测试工具:

打开 HTTP抓包测试工具,点击右上角,启动内置浏览器,输入王老板给的在线商城网站:

为了搞清楚为什么可以使用1元就在他在线商城里买走了5000元的商品,这里使用 HTTP抓包测试工具对数据的流程进行逐步分析。

回到 HTTP抓包测试工具中,打开左上角拦截开关拦截数据,回到内置浏览器中点击立即购买。

发现 HTTP抓包测试工具中已经抓取到此次请求数据包数据:

该数据为一个 POST 类型的请求数据包,最后的一行包含了此次请求的发送的数据,"quantity=1&price=1688"中文含义理解为“数量=1&价格=1688”,可以得出此次请求中,提交了一个数据,其中表明购买的数量为 1,物品的价格为 1688。

王老板说黑客只花了1元就买走了5000元的商品,这里如果把购买的物品的价格设置为 1 元钱,是不是就可以花 1 元钱购买到这个物品呢?测试如下:

回到 HTTP抓包测试工具中,把“price=1688”修改为“price=1”,点击放行,发现返回了一个 HTML 的页面,但是有很多内容,不知道具体内容:

为了看到具体页面的内容,点击“页面浏览”:

根据页面显示的内容,可以发现已经成功修改了物品的价格:

关闭掉拦截请求,去内置浏览器查看一下结果:

点击结算按钮,如果可以结算成功说明黑客就是使用该方式进行的购买:

至此成功找到了黑客是如何花费 1 元钱购买到5000元的商品。

测试总结

测试漏洞:

支付数据篡改是一种严重的安全漏洞,可能会导致资金损失或数据泄露。其主要原因通常是缺乏输入验证和数据完整性检查,以及不安全的数据传输和存储方式。

解决方案:

  1. 输入验证: 对于所有用户输入的支付数据进行验证,确保数据格式和内容符合预期。验证应该包括数据类型、范围、长度和格式等方面。
  2. 数据加密: 在存储支付数据时,对敏感信息进行加密,确保数据在存储和传输过程中的安全性。可以使用加密算法如AES对数据进行加密。
  3. 数字签名: 对于重要的支付数据,使用数字签名来验证数据的完整性和真实性。数字签名可以确保数据未被篡改,并验证数据的发送者。
  4. 安全审计和监控: 定期审计和监控支付系统,检测异常活动并及时采取措施。记录所有的支付操作和变更,并对记录进行审计和监控,以及实时监控支付系统的安全状况。

注意:工具使用内容请以最新版本为主。

  • 23
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值