加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

最土系统漏洞一

(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语句中,十分危险。

修复方案:

针对以上参数进行过滤,等待官方升级

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有