返回介绍

5.5 商品编号篡改测试

发布于 2024-10-11 00:03:32 字数 1629 浏览 0 评论 0 收藏 0

5.5.1 测试原理和方法

在交易支付类型的业务中,最常见的业务漏洞就是修改商品金额。例如在生成商品订

单、跳转支付页面时,修改 HTTP 请求中的金额参数,可以实现 1 分买充值卡、1 元买特

斯拉等操作。此类攻击很难从流量中匹配识别出来,通常只有在事后财务结算时发现大额

账务问题,才会被发现。此时,攻击者可能已经通过该漏洞获得了大量利益。如果金额较

小或财务审核不严,攻击者则可能细水长流,从中获得持续的利益。事后发现此类漏洞,

就大大增加了追责的难度和成本。

此类业务漏洞的利用方法,攻击者除了直接篡改商品金额,还可以篡改商品编号,同

样会造成实际支付金额与商品不对应,但又交易成功的情况。攻击者可以利用此业务漏洞

以低价购买高价的物品。

5.5.2 测试过程

攻击者提交订单时,抓包篡改商品编号,导致商品与价格不对应但却交易成功,如图

5-20 所示,攻击者从价格差中获利。

图 5-20 商品编号篡改测试流程

步骤一:登录某积分商城 http://xxxxx.com.cn/club/index.php?m=goods&c=lists。

步骤二:列出积分换商品,先挑选出我想要的礼物,如商品编号为

goods_id=1419f75d406811e3ae7601beb44c5ff7.

需要 30 积分换购的商品,如图 5-21 所示。

图 5-21 兑换礼品

步骤三:选择商城中积分最低的礼物兑换(5 积分的杯子),并填好相关信息,抓包

修改 goods_id,如图 5-22 所示。

图 5-22 篡改商品编号

步骤四:替换 goods_id=1419f75d406811e3ae7601beb44c5ff7(30 积分),替换成功,

如图 5-23 所示。

步骤五:订单页面显示用 5 积分换购需要 30 积分的鼠标成功,如图 5-24 所示。

图 5-23 兑换成功

图 5-24 订单信息

5.5.3 修复建议

建议商品金额不要在客户端传入,防止被篡改。如果确实需要在客户端传输金额,则

服务端在收到请求后必须检查商品价格和交易金额是否一致,或对支付金额做签名校验,

若不一致则阻止该交易。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文