今日在线

光年之外,黄花菜的功效与作用,游戏交易平台-第二视角新闻

本文共享的Writeup是某盛行电子商务购物网站的一个参数篡改缝隙(Parameter Tampering),作者使用该缝隙能够更改购物车中产品数量为负数,经过终究的正负付出金额平衡,完成以最贱价格乃至是免费方法购物。以下是相关共享。

缝隙原因

近期,我收到了一份针对某盛行电子商务购物网站的测验约请,正好,我平常也常常在这个网站上购物,所以我欣然接受了这次约请。因为网站方希望能发现一些影响事务方面的缝隙,所以我首要想到的便是测验参数篡改缝隙(Parameter Tampering)。

参数篡改(Parameter Tampering):此类进犯是根据对客户端和服务器之间交流参数的操作操控,它经过修正Web使用交互中存储在cookies、提交恳求、躲藏表单字段或URL查询字符串中触及的数据参数,如用户凭据、权限、产品价格、数量等,来完成操控和更改Web使用功用。参数篡改进犯的意图是为了获取利益,或使用中间人进犯来深化进犯其他人。

在这里,参数篡改触及的缝隙无疑便是价格操作了,这是当今许多电子商务网站在线购物车和付出网关中存在的遍及缝隙。

出于保密原因,咱们把方针电子商务网站称为redacted.com。该网站存在的首要问题在于,它们只对用户购物车中的某件产品数量做了最大上限:10件,但却忘掉对其产品数量下限做出约束,因而,任何人能够把购物车中的某件产品数量削减至负数,从而在购物车中增加负数的产品数量和付出金额。

缝隙影响

因为方针电子商务网站存在事务逻辑过错,因而我能够篡改购物车中的某些产品数量至负数,则当付出产品时,不同正负数量的产品件数发生的不同正负价值的付出金额相抵,导致我能以十分低的价格,或乃至是免费来购买某些产品。

缝隙复现

拜访方针购物网站redacted.com,恣意翻开一件产品,把它增加进购物车。比方,我在其间增加了一件单价为599 ₹ 的T恤衫,在该过程中,抓包剖析,阻拦其流量,然后把该件产品数量更改为-10。那该产品付出金额便是:

付出金额: -10 * 599 ₹ = -5990 ₹

付出金额: -10 * 599 ₹ = -5990 ₹

留意,这件负数产品终究其实是用来相抵的,并不会出现在终究购买成功的单据中,请持续往下看。

要平衡上述购物车中的付出金额,我又从中增加了单价为399 ₹的7双鞋子,该产品付出金额为:

付出金额: 7*399 ₹ =2793 ₹

付出金额: 7*399 ₹ =2793 ₹

现在,购物车中产品的付出金额还需要一些正数价格,所以,我又向其间增加了单价为399 ₹的8条牛仔裤,其金额为:

付出金额: 8*399 ₹ = 3192 ₹

付出金额: 8*399 ₹ = 3192 ₹

那么,这样一来,购物车中总的产品付出金额就成为了:

付出金额: -5990 ₹ +2793 ₹ + 3192 ₹ = -5 ₹

付出金额: -5990 ₹ +2793 ₹ + 3192 ₹ = -5 ₹

可是,终究它却会报错,原来是因为消费税(GST)等原因,购物车中的最低付出金额为350 ₹,所以还需要在结账这关上进一步结构。

接下来,我又向购物车中增加进了单价为599₹ 的T恤衫一件,所以付出金额594₹,加上消费税(GST)329₹,终究付出金额为:923 ₹。

我进一步挑选了收货地址,找到了付款方法,并经过信用卡付款,成功付出了该订单。终究,我发现买到的产品为7双鞋子、8条牛仔裤和1件T恤衫。也便是说,这些产品原本的价格应该是:7*399 ₹ +8*399₹ +599₹ =6584 ₹,而我却用923₹就买到了!当然,你也能够对产品数量进行一些其它价格结构,完成贱价或免费购物。缝隙上报后,方针网站方十分重视,及时进行了修正并给予了我大笔奖赏。

经验总结

1、不要太信任浏览器端中的控件信息,不要太信任浏览器客户端的验证和存储数据;

2、把增加进购物车中的产品付出金额与提交到服务器后端的实践金额进行一个MD5哈希比较,假如两者存在不同,则或许存在参数篡改缝隙;

3、去验证一些超出正常规模的字符或数据类型,如输入负数数量等,越出Web使用的最大最小约束去做测验,去考虑问题。

1、不要太信任浏览器端中的控件信息,不要太信任浏览器客户端的验证和存储数据;

2、把增加进购物车中的产品付出金额与提交到服务器后端的实践金额进行一个MD5哈希比较,假如两者存在不同,则或许存在参数篡改缝隙;

3、去验证一些超出正常规模的字符或数据类型,如输入负数数量等,越出Web使用的最大最小约束去做测验,去考虑问题。

*参阅来历:medium,clouds编译收拾,转载请注明来自FreeBuf.COM

相关文章