当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2014-057725

漏洞标题:新浪某站SQL注入(涉及2百多张表)

相关厂商:新浪

漏洞作者: nextdoor

提交时间:2014-04-20 13:48

修复时间:2014-06-04 13:49

公开时间:2014-06-04 13:49

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:15

漏洞状态:厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-04-20: 细节已通知厂商并且等待厂商处理中
2014-04-21: 厂商已经确认,细节仅向厂商公开
2014-05-01: 细节向核心白帽子及相关领域专家公开
2014-05-11: 细节向普通白帽子公开
2014-05-21: 细节向实习白帽子公开
2014-06-04: 细节向公众公开

简要描述:

新浪某站sql注入(涉及2百多张表)

详细说明:

注入点
http://food.gd.sina.com.cn/article.php?t=rstrt&id=25671
可以爆出管理用户和密码
有50多个用户名不一一列举,后台
http://food.gd.sina.com.cn/admin/login.php
50多个用户肯定有弱口令,时间关系未进一步深入测试
测试过程如下:

a.PNG


爆出的表,有二百多个

b.PNG


用户名和密码

c.PNG


d.PNG


e.PNG


漏洞证明:

用户名和密码

d.PNG


e.PNG

修复方案:

参数化查询语句,按照自己表的格式作对应修改
<?php
$name = $_GET['name'];
$db = new mysqli("localhost", "dbuser", "dbpass", "db");
if (mysqli_connect_errno()){
printf("Error:%s\n",mysqli_connect_error());
exit;
}else{

if($stmt = $db->prepare("SELECT sname,age,score,snum FROM student WHERE sname like ?")){
$sname = $name."%";
$stmt->bind_param('s', $sname);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($sname,$age,$score,$snum);
while($stmt->fetch()){
echo $sname,$age,$score,$snum,"<br />";
}
$stmt->close();
}
$db->close();
}
?>

版权声明:转载请注明来源 nextdoor@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:8

确认时间:2014-04-21 10:21

厂商回复:

多谢,地方站点问题较多,已经着手处理

最新状态:

暂无


漏洞评价:

评论

  1. 2014-04-21 09:14 | 孤独雪狼 ( 普通白帽子 | Rank:710 漏洞数:145 | 七夕手机被偷,这坑爹的七夕啊 。。。。)

    求细节

  2. 2014-04-21 14:25 | nextdoor ( 普通白帽子 | Rank:325 漏洞数:74 )

    @孤独雪狼 未脱裤子

  3. 2014-06-04 18:13 | Anonymous.L ( 实习白帽子 | Rank:37 漏洞数:8 | 最后一位关注xxxx的人 , 孤独之人)

    不得不说你这修复方案PHP代码写的很XX,都什么时候了输出还要用printf???out了

  4. 2014-06-05 01:25 | nextdoor ( 普通白帽子 | Rank:325 漏洞数:74 )

    @Anonymous.L 重点不是printf而是参数化查询语句,这个只是例子,还要,根据自己的数据库进行修改,不要纠结用printf还是echo的问题上。

  5. 2014-06-06 02:06 | Anonymous.L ( 实习白帽子 | Rank:37 漏洞数:8 | 最后一位关注xxxx的人 , 孤独之人)

    @nextdoor 从这代码里可以看出是一个非常老的程序员写的码。不仅是echo问题