此漏洞十分严重,将直接影响网站的订单信息,发现于商业版本CV1.6.1490,
最土团购程序漏洞及修复漏洞预警
。问题原因:
用户进入下订单页面时(/team/buy.php?id=xxx),页面中存在一个隐藏域,此$order['id']用于存放用户之前为付款订单的id,为sql注入入口。
criteria 1:
修改,并对表单进行提交,会将本订单的信息覆盖掉相应order id的订单信息,但付款状态不会修改。如果用户在团购成功之前下了订单,还会将团券信息发送至用户。
criteria 2:
修改,十分危险的sql注入,
电脑资料
《最土团购程序漏洞及修复漏洞预警》(https://www.unjs.com)。解决方法:
在team/buy.php(或wap/buy.php)的第122行(107行)左右,有一句
if ($flag = $table->Update($insert)) ,可将Update改为Insert为应急方案。
由于$table变量使用了$table = new Table('order', $_POST);进行了初始化,一旦$_POST['id']不为空,则其值将作为主键查询更新至相应记录。
另外,DB.class.php中的DB类的Update方法也存在漏洞,使得sql注入存在可能。在第284行左右。
else $condition = "`$pkname`='$id'"; 中的$id值未经处理,使得input中的值直接被传至sql语句中,十分危险。
修复方案:
针对以上参数进行过滤,等待官方升级