从团购网的漏洞看网站安全性问题

安全 漏洞
现在的网站安全问题非常突出,当然,现在非常火爆的团购网也不例外。自从9月份在同事推荐下在某团购网买了一份火锅的套餐后,就迷上了,几乎每天必去浏览一遍,看看有什么又便宜又好吃的。

现在的网站安全问题非常突出,当然,现在非常火爆的团购网也不例外。自从9月份在同事推荐下在某团购网买了一份火锅的套餐后,就迷上了,几乎每天必去浏览一遍,看看有什么又便宜又好吃的。元旦期间当然也不例外,1号那天上午,看到了XXX团购网的“VIP会员0元领红包”活动,0元?我最喜欢了,虽然参与过很多次0元抽奖的活动,一次也没中,但是人总是有一种信念相信自己的运气的。于是果断进去注册,点击购买,进入了购物车再点击确认订单,但是“本活动只限VIP会员参与”?我第一反应是去看页面源代码(由于该活动已经结束,进不去购买页面了,所以在这里我只好用伪代码来表示):

  1. //确认订单按钮的点击事件  
  2. function btn_click(){  
  3.   ajax获取当前用户的类型  
  4.   如果不是VIP,alert("本活动仅限VIP会员参与");  
  5.   否则 form1.submit();  

然后我在地址栏敲入:javascript:form1.submit(); 回车! 进入付款页面了,再点击确定,购买成功!我获得了5元红包!

我又新注册一个账号,重复上面的步骤,也成功获得了5元红包。马上给客服留言说明此BUG。这个漏洞的关键点是开发人员忘记了在form1.submit()的后台代码中判断当前用户是否VIP会员,只依赖于javascript的验证。

前台的验证完全可以绕过去,后台的验证才最重要!有了上午的收获,1号晚上我就继续找别的团购网的漏洞,果然被我找到一个更严重的。该团购网也举行了一个元旦抽奖砸金蛋活动,也是免费参与,购买后发现得邀请好友参与活动才有砸金蛋的机会,邀请一个好友就多一个机会,如图:

我一点击金蛋就alert一句“没有抽奖机会了快去邀请好友吧!”,恩,又是javascript?看看代码先:

这便是金蛋的点击事件,其中有一个用AJAX去访问的页面lottery1.php,而要传过去的chance变量应该就是当前用户拥有的砸蛋机会。我试着直接访问lottery1.php?chance=1,返回error字符串,lottery1.php?chance=0也返回error,lottery1.php?chance=-1,也返回error,难道没效果么?我刷新了一下砸金蛋的页面,哇!!

我传了-1过去导致溢出了?我试着砸了几个,每次都成功获得代金卷!接着试着用代金卷去下单,也能成功减免掉几块钱,不过一张订单只能用一个代金卷,(当然测试用的订单我最后取消掉了。)马上联系客服,居然下班了,QQ不在线,电话打不通,只好留了个言。

42亿的金蛋呢,写了段JS自动砸!截止现在一共有3588个金蛋被砸开,其中至少有2000多个是我砸的,得到了一大堆的代金卷:

#p#

整整185页。到了2号,我重新查看该团购网的代码时,发现了一个更严重的问题:

JS中有这么个方法

乍一看是跟钱有关的吧,传入用户ID和钱的数目,试试有什么效果。用户ID怎么获得呢?页面上有:

这个96204就是我当前帐户的ID了,访问了一下,返回“线下充值成功”,充值页面都不加权限验证的?查看了一下帐户余额,果然充值成功了:

有2万余额了。这个漏洞太致命了,立马给客服留言。刚留完言,他们的开发人员给我打电话了,和我讨论砸金蛋的漏洞问题,正好将刚发现的漏洞一起告诉他。开发人员就是命苦啊,元旦期间,晚上10点多了,他还要改代码。

改完他说老板可能送点礼品给我,最后他把我的帐户余额清零了~~~~~~~~

总结一下:前台的验证都是不可靠的,后台必须要都要验证一遍;管理页面一定要加访问权限;传递到后台的数据一定要进行合法性验证;不必要传递的参数就不传,比如那个砸蛋,我就想不明白为什么要把当前用户拥有的砸蛋机会传递到后台,直接从数据库中读取不行么?用户ID不要以明文出现。另外还要防范XSS跨站脚本攻击(一般用判断主机头的方式)

【编辑推荐】

  1. NSS实验室发布漏洞测试全新模式:漏洞中心
  2. 新网被黑 域名注册商网站安全性竟如此脆弱
  3. IE“圣诞”漏洞爆发 在线游戏网站成木马重灾区
  4. 企业门户网站安全如何“给力”
责任编辑:佟健 来源: 博客园
相关推荐

2012-04-12 11:28:04

2013-04-10 10:54:13

Hadoop大数据大数据安全

2011-06-13 16:52:18

2015-04-21 10:21:49

2010-03-02 16:34:36

WCF线程

2021-10-12 16:11:19

区块链安全比特币

2018-07-16 15:31:15

2012-09-29 10:22:36

2009-07-21 08:45:57

Google操作系统Chrome系统安全性

2009-07-21 10:17:06

Chrome操作系统安全性

2018-02-27 10:49:53

5G迁移安全

2012-10-25 13:57:46

2009-11-06 11:10:01

2009-03-23 09:47:59

2009-09-23 09:19:23

2010-01-13 11:27:06

C++安全性

2010-03-11 15:03:47

2012-07-18 14:18:15

团购网站

2010-03-19 15:32:01

2014-03-05 16:14:31

点赞
收藏

51CTO技术栈公众号