|
|
首先说说这次的攻击环境: Web 服务器( 172.16.0.125 ) MySQL 服务器( 172.16.0.119 ) 注意:比赛规定是不允许上外网,所有工具都是自己带的。且刚开始数据库服务器 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 ,不过对于繁体的论坛的中文名注册会变乱码,我只测试了英文名的,不管,先写一个表单:
这个漏洞不是我发现的,但是我自己分析过,在我们的内部论坛有我的分析报告,现在公布出来。先说说这个漏洞的利用和存在的理由。 register.php 的代码中有如下代码:
这里是说如果不存在 $doublee 这个变量,并且判断邮件地址格式正确,就指定 $emailadd 这个变量为 "OR email=’$email’" ,为后面的 SQL 语句做准备。往下有一段代码如下:
默认 $emailadd = "OR email=’$email’" 是满足的,所以上面的 SQL 语句就变成判断用户名和邮箱,有任意一个相同,就提示“该用户名或 Email 地址已经被注册了,请返回重新填写。” 利用的方法是给 $doublee 赋值,然后就可以饶过 $emailadd = "OR email=’$email’" 这句,然后再自己构造 $emailadd 这个变量,这个就是我在本地表单的 action 构造的原因。
然后这个语句到了上面的 SQL 语句那里,就变成:
既然是同时用用户名和用户 ID 判断,那么这个肯定是不成立的了,就可以顺利跳过
直接到达这里插入记录:
也就注册了相同的用户名。然后再看看 memcp.php ,看到更新用户资料的那里, SQL 语句居然是这样。
直接更新所有用户名为 XX 的资料。呵呵,就达到了修改管理员的密码的目的。呵呵, DZ 论坛没有用 id 来判断更新是不严谨的。没有考虑到唯一性…… 我顺利提升了自己论坛用户的权限,能进入后台以后,我们可以做的事情就多了,插入记录,导出文件,就可以写文件在硬盘了,由于不知道 Web 目录路径,所以不能用 select….into outfile 导出文件,而且此时数据库与 WEB 服务器是分开的,即使导文件也是导出在 MYSQL 服务器上。不过还是有办法,我马上在“数据库升级那里”执行:
黑体部分是我写的后门代码,然后选择数据库备份最小备份,把扩展名改成 .php ,备份后我们就可以上传文件到 forumdata 目录了,可能有不少新手会问,我怎么这么了解?因为我以前用过 Discuz 论坛,研究过这个论坛,所以对这个论坛还是十分熟悉的,如果有谁不懂可以直接搭建环境来测试。 然后本地再写一个表单用于上传文件:
我们上传了一个 phpspy 上去,上去后,我要做的事就只有一件,就是把 register.php 文件的漏洞给补上,直接把
改为:
断绝其他对手的后路,我们再多传几个 phpspy ,让我们的队员慢慢玩,查看 config.php 文件,看到了 MySQL 服务器地址( 172.16.0.119 )和 root 用户的密码,原来密码是 fuck_Mysql ,用这个密码试了试 MySQL 服务器的管理员,失败。还有 phpmyadmin 的地址,原来是 php32 目录。查看了一下 php 配置,配置还不错,挺仔细的,可惜我的 phpspy 还是可以利用 webshell 功能成功的添加了系统帐号并提升到管理员权限,成功登陆 3389 ,注意,由于 Windows Server 2003 的安全机制,不是 Administrators 组的用户是不能登陆 3389 的,查看了一些基本的配置后,看到 EffeTech HTTP Sniffer ,原来剑客一直在注意我呢,哈哈,在桌面留个文件和他打个招呼,表示一下晚辈对前辈的尊重。
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||