您的位置 首页 java

购物车并发漏洞!以低价格购买高价商品

购物车并发漏洞!以低价格购买高价商品

Web应用程序可以同时处理很多HTTP请求。开发人员常常在使用变量时不注意 线程 安全问题。

线程安全 是指一个对象或类的成员变量在 多线程 并发访问的时候总是保持有效的状态。

当另一个用户在同一时刻加载同一个页面时,可能存在可被利用的并发漏洞。

下面是一个购物车并发漏洞的模拟实验。实验环境的介绍请参考: 购物车并发漏洞!以低价格购买高价商品Web安全漏洞实验平台Webgoat学习(1):怎么用?

实验页面如下图所示,你的目标是利用存在的购物车并发漏洞,以较低的价格购买高价格商品。

购物车并发漏洞!以低价格购买高价商品

实验步骤如下:

1. 开启两个浏览器窗口,窗口A中,选择较便宜的商品,如$169的Hitachi – 750GB External Hard Drive,点击【Update Cart】按钮将商品加入购物车,然后点击【Purchase】购买按钮。如图:

购物车并发漏洞!以低价格购买高价商品

窗口A中点Purchase按钮后

2. 在窗口 B 中,选择较贵的商品,如$1799的Sony – Vaio with Intel Centrino,然后按【Update Cart】更新购物车按钮。如图:

购物车并发漏洞!以低价格购买高价商品

窗口B中选择较贵的商品,点更新购物车

3. 打开窗口 A,点击【Confirm】确认按钮,结果显示以较低的价格$169购买到了价格为$1799的商品,实验目标完成。如图:

购物车并发漏洞!以低价格购买高价商品

窗口A中点【Confirm】确认按钮后

原因:

在代码中使用了 静态变量 ,且都 没有做线程安全保护 ,代码( JAVA )如下:

// Shared Variables
private static int total = 0;
private static float runningTOTAL = 0;
private static int subTOTAL = 0;
private static float calcTOTAL = 0;
private static int quantity1 = 0;
private static int quantity2 = 0;
private static int quantity3 = 0; 

文章来源:智云一二三科技

文章标题:购物车并发漏洞!以低价格购买高价商品

文章地址:https://www.zhihuclub.com/183074.shtml

关于作者: 智云科技

热门文章

网站地图