12-10
使用开源产品,的确能加快我们的产品实现进度,我们也感谢那些提供免费开源产品的人。当然,我个人也喜欢开源技术。
但如果开源的产品中给你下个后门,抓取你的数据,你还能高兴么?
现在分析 discuz 7.0 的几段代码:
- if($adminid == 1 && $action == 'home') {
- echo '<sc '.'ript language="Jav'.'aScript" src="ht'.'tp:/'.'/cus'.'tome'.'r.disc'.'uz.n'.'et/n'.'ews'.'.p'.'hp?'.bbsinformation().'">';
- //echo '</sc><sc '.'ript language="Jav'.'aScript" src="http://localhost/com/n'.'ews'.'.p'.'hp?'.bbsinformation().'">';
- }
- </sc>
恩,看见了没,我告诉大家一个写木马常用的方式 eval ,比如asp中查找木马,通常查找fso等关键字,木马一般都给他写成 eval(’f'+’s’,'o’),写php的应该很熟悉这个函数了。这段代码当然不是木马,咱看看他具体做了什么:
- function bbsinformation() {
- global $db, $timestamp, $tablepre, $charset, $bbname, $_SERVER, $siteuniqueid, $save_mastermobile, $msn;
- $update = array('uniqueid' => $siteuniqueid, 'version' => DISCUZ_VERSION, 'release' => DISCUZ_RELEASE, 'php' => PHP_VERSION, 'mysql' => $db->version(), 'charset' => $charset, 'bbname' => $bbname, 'mastermobile' => $save_mastermobile);
- $updatetime = @filemtime(DISCUZ_ROOT.'./forumdata/updatetime.lock');
- if(empty($updatetime) || ($timestamp - $updatetime > 3600 * 4)) {
- @touch(DISCUZ_ROOT.'./forumdata/updatetime.lock');
- $update['members'] = $db->result_first("SELECT COUNT(*) FROM {$tablepre}members");
- $update['threads'] = $db->result_first("SELECT COUNT(*) FROM {$tablepre}threads");
- $update['posts'] = $db->result_first("SELECT COUNT(*) FROM {$tablepre}posts");
- $query = $db->query("SELECT special, count(*) AS spcount FROM {$tablepre}threads GROUP BY special");
- while($thread = $db->fetch_array($query)) {
- $thread['special'] = intval($thread['special']);
- $update['spt_'.$thread['special']] = $thread['spcount'];
- }
- if($msn['on'] && $msn['domain']) {
- $update['msn_domain'] = $msn['domain'];
- }
- }
- $data = '';
- foreach($update as $key => $value) {
- $data .= $key.'='.rawurlencode($value).'&';
- }
- return 'update='.rawurlencode(base64_encode($data)).'&md5hash='.substr(md5($_SERVER['HTTP_USER_AGENT'].implode('', $update).$timestamp), 8, 8).'×tamp='.$timestamp;
- }
看见了吧,看他提交的几个关键字段:$update['members'],$update['threads'],$update['posts'],$thread['special'],$update['spt_'.$thread['special']],$update['msn_domain'],这些字段提交过去,也许对我们系统安全并无影响,可看看6.0版本的论坛还提交了什么:
uniqueid=**&version=6.0.0&release=20081117&php=5.2.6&mysql=5.0.22&charset=utf-8&bbname=**&mastermobile=****&members=4965&threads=883&posts=25921&spt_0=879&spt_1=4&
mastermobile 看见这个字段你会汗不?
康盛应该为此行为买单不?不会 。
看下边:
III 有限担保和免责声明
1. 本软件及所附带的文件是作为不提供任何明确的或隐含的赔偿或担保的形式提供的。
2. 用户出于自愿而使用本软件,您必须了解使用本软件的风险,在尚未购买产品技术服务之前,我们不承诺提供任何形式的技术支持、使用担保,也不承担任何因使用本软件而产生问题的相关责任。
3. 康盛创想(北京)科技有限公司不对使用本软件构建的论坛中的文章或信息承担责任。
您必须了解使用本软件的风险–用户了解信息泄露的风险么?
康盛创想(北京)科技有限公司不对使用本软件构建的论坛中的文章或信息承担责任。其实,我也不愿意承担。
本文纯属月经文,如有难受,过几天自然恢复。
十二月 10th, 2009 at 09:52:03
呵呵,PHPwind也有类似的代码。
十二月 10th, 2009 at 09:52:28
不单单是Disscuz,康盛其他的产品都是这样,会向他的服务器偷偷提交数据,用HTTPWatch一看就知道了。
十二月 10th, 2009 at 09:55:46
其实不单单是Disscuz,康盛其他的产品都一样,会偷偷向他的服务器提交信息。最简单的办法,用HTTPWatch看一下就知道了。
十二月 11th, 2009 at 19:39:38
貌似危险性不大!
十二月 11th, 2009 at 22:37:51
Discuz 居然还怕别人搜索到 discuz.net 把那个域名给拆散了
前段时间后台风格有问题被人加 eval, 怀疑是不是就跟这个 js 有关系.
十二月 14th, 2009 at 12:26:54
mastermobile 是什么?管理员电话?
哈哈,小心跨省追捕啊
十二月 18th, 2009 at 14:54:09
discuz不是开放源代码的产品
能获得,和开放,是两个概念
十二月 19th, 2009 at 11:44:26
mastermobile能乱填么
十二月 19th, 2009 at 12:46:56
暗藏奸诈啊
十二月 20th, 2009 at 00:37:44
GOD 怎么这样~··
十二月 20th, 2009 at 20:41:04
何必这么大惊小怪呢?
十二月 22nd, 2009 at 10:57:48
在/etc/hosts里面把customer.discuz.net指到127.0.0.1
jiejue fangfa
十二月 22nd, 2009 at 16:16:37
那个在客户端执行,不走server
十二月 22nd, 2009 at 19:55:49
这几段代码具体是什么文件里的?
十二月 22nd, 2009 at 21:01:08
后台首页
十二月 22nd, 2009 at 21:34:20
服了,还带这么玩的。。。。
十二月 22nd, 2009 at 21:37:56
就这么玩了,爱咋咋地
十二月 23rd, 2009 at 17:54:10
我还就不明白了,把管理员电话传给 Discuz! 官方有何不对?如果你不想传给官方,你添它还有啥用,你在页面上能显示出来?
在讨论这个问题之前先想想 Discuz! 收集这个电话的用处吧。一旦论坛的安全出现严重漏同,Discuz! 会第一时间通过手机短信的形式通知站长,让站长在最快的时间内安装补丁或者采取其他措施,这难道不是勇于负责的一种做法吗?
你可以不填写,只要你填写了,总要有个理由吧?
十二月 24th, 2009 at 08:43:31
既然是软件,这个流程需要给用户提示,可惜它没有,另外,不仅传了手机号码,还有其他信息。
十二月 24th, 2009 at 21:05:29
18楼绝对是个托啊。
十二月 28th, 2009 at 10:32:36
18楼绝对是个托啊。+ 1
一月 28th, 2010 at 20:41:33
康盛做事太差劲了
八月 23rd, 2010 at 16:39:01
最近传闻discuz被腾讯收购,不知道怎的突然就想到discuz会不会存在后门,收集隐私之类的东西,觉得很可怕,最后找到这里来,上面的代码在7.2中还是存在,然后通过搜索还找到这样一段代码:
function onmain() {
$ucinfo = ‘_get_uc_info().’”>’;
$this->view->assign(’ucinfo’, $ucinfo);
$members = $this->_get_uc_members();
$applist = $this->_get_uc_apps();
$notes = $this->_get_uc_notes();
$errornotes = $this->_get_uc_errornotes($applist);
$pms = $this->_get_uc_pms();
$apps = count($applist);
$friends = $this->_get_uc_friends();
$this->view->assign(’members’, $members);
$this->view->assign(’applist’, $applist);
$this->view->assign(’apps’, $apps);
$this->view->assign(’friends’, $friends);
$this->view->assign(’notes’, $notes);
$this->view->assign(’errornotes’, $errornotes);
$this->view->assign(’pms’, $pms);
$this->view->assign(’iframe’, getgpc(’iframe’, ‘G’));
$serverinfo = PHP_OS.’ / PHP v’.PHP_VERSION;
$serverinfo .= @ini_get(’safe_mode’) ? ‘ Safe Mode’ : NULL;
$dbversion = $this->db->result_first(”SELECT VERSION()”);
$fileupload = @ini_get(’file_uploads’) ? ini_get(’upload_max_filesize’) : ”.$lang['no'].”;
$dbsize = 0;
$tablepre = UC_DBTABLEPRE;
$query = $tables = $this->db->fetch_all(”SHOW TABLE STATUS LIKE ‘$tablepre%’”);
foreach($tables as $table) {
$dbsize += $table['Data_length'] + $table['Index_length'];
}
$dbsize = $dbsize ? $this->_sizecount($dbsize) : $lang['unknown'];
$magic_quote_gpc = get_magic_quotes_gpc() ? ‘On’ : ‘Off’;
$allow_url_fopen = ini_get(’allow_url_fopen’) ? ‘On’ : ‘Off’;
$this->view->assign(’serverinfo’, $serverinfo);
$this->view->assign(’fileupload’, $fileupload);
$this->view->assign(’dbsize’, $dbsize);
$this->view->assign(’dbversion’, $dbversion);
$this->view->assign(’magic_quote_gpc’, $magic_quote_gpc);
$this->view->assign(’allow_url_fopen’, $allow_url_fopen);
$this->view->display(’admin_frame_main’);
}
对php不熟悉,不知道这段代码做了点什么,能否解释下,还有能把所有discuz关于这类的问题全找出来吗?只有把这些都删了用起来才放心啊!!
八月 23rd, 2010 at 16:42:49
晕,部分代码被过滤掉了,在frame.php文件里,搜索onmain就出来了,还有你发的第二篇里面的是指discuz还是uchome?
八月 23rd, 2010 at 18:35:57
uchome discuz都存在这个问题
八月 23rd, 2010 at 18:36:42
你把他往其服务器上提交信息的代码删掉就行,我把模板里那段js给删了。
八月 24th, 2010 at 00:20:50
好家伙,除了你上面那个,我还找到两个那样的代码,一个应该是后台更新的代码,一个就是在安装的时候提交到服务器去了,杯具啊杯具,如果能把所有的都找出来就好了,discuz真的被腾讯收购了,以后会变质了,不过在我看来从6.1强行加了ucenter后就算是变质了,越来越臃肿,越来越多无用的功能,唉。
十月 3rd, 2011 at 00:32:42
楼主,请问X2.0还存在这个现象吗?应该如何删除所有这样的代码?不知道如何联系您,我的邮箱已经留了,如果可能的话,请联系我,有问题请教