最土系统漏洞一
(2012-01-06 16:36:10)
标签:
系统mysql漏洞it |
分类: 关于安全知识点 |
一、此漏洞十分严重,将直接影响网站的订单信息,发现于商业版本CV1.6.1490。
问题原因:
用户进入下订单页面时(/team/buy.php?id=xxx),页面中存在一个隐藏域<input
type="hidden" name="id" value="{$order['id']}"
/>,此$order['id']用于存放用户之前为付款订单的id,为sql注入入口。
criteria 1:
修改<input type="hidden" name="id" value="任意order id"
/>,并对表单进行提交,会将本订单的信息覆盖掉相应order
id的订单信息,但付款状态不会修改。如果用户在团购成功之前下了订单,还会将团券信息发送至用户。
criteria 2:
修改<input type="hidden" name="id" value="sql语句"
/>,十分危险的sql注入。
解决方法:
在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语句中,十分危险。
修复方案:
针对以上参数进行过滤,等待官方升级

加载中…