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
康盛做事太差劲了