文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | firefox | WPS | 杀毒软件 | Picasa
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形图像 办公软件 媒体动画 精文荟萃 常用软件 网页编程 技术开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院网络编程PHP对PHP程序中的常见漏洞进行攻击
精品推荐
特别推荐
·菜鸟学PHP之Smarty入门
·PHP环境安全配置教程
·PHP入门指导:如何学习PHP?
·Php+Mysql注入专题
·PHP:实现给上传图片加水印的程序代码
·PHP动态网站开发中常用的8个小技巧
·PHP初学者:配置Apache服务器并且设置DNS
·初学PHP指导:php.ini 配置详细选项
·好文分享:PHP入门的学习方法
·急速搭建属于自己的Discuz!6论坛
·PHP入门:初学来看配置文件PHP.INI的中文注释
·php.ini配置,php.ini 中的 php-5.2.0 配置指令详解
·总结:一些PHP学习过程中的心得和经验
·新手入门:JSP初学者必须掌握的语法点
·PHP技巧:PHP脚本编程中的文件系统函数库
·详细讲解PHP编程中分页显示的制作
·成为PHP编程高手应该遵循的三个准则
·谈谈生成静态页面的一些经验
·新手入门:详细解述七个软件开发的原则
·简单的webservice开发例子
热点TOP10
·一个Struts实现分页,增删改查,Tiles,国际化的DEMO
·MyEclipse+struts+Hibernate配置开发
·Windows XP下PHP+MySQL环境搭建
·PHP预定义变量
·简单的webservice开发例子
·80004005 及其它错误消息的疑难解答
·模板用xml的思路
·用PHP实现多级树型菜单
·如何利用PHP和CSS改变网页文字大小
·PHP+MYSQL留言本
·PHP+Access设计留言版实战
·初学者学习PHP开发应该掌握的几段精华代码
·JDBC连接Oracle数据库常见问题及解决方法
·PHP入门指导:如何学习PHP?
·实用:动态网页制作技术PHP的十个应用技巧
·菜鸟学PHP之Smarty入门
·PHP 会话 (Session) 使用入门
·Win2003下APACHE+PHP5+MYSQL4+PHPMYADMIN 的简易安装配置
·优化NFR之一 --MSSQL Hello Buffer Overflow
·Win2000下PHP服务器安装攻略

对PHP程序中的常见漏洞进行攻击

日期:2008年3月20日 作者: 查看:[大字体 中字体 小字体]


  $hello_size = 10240 
  $hello_type = "text/plain" 
  $hello_name = "hello.txt"

  上面的表单数据正好满足了PHP程序所期望的变量,但是这时PHP程序不再处理上载的文件,而是处理“/etc/passwd”(通常会导致内容暴露)。这种攻击可以用于暴露任何敏感文件的内容。

  我在前面已经说了,新版本的PHP使用HTTP_POST_FILES[]来决定上载文件,同时也提供了很多函数来解决这个问题,例如有一个函数用来判断某个文件是不是实际上载的文件。这些函数很好的解决了这个问题,但是实际上肯定有很多PHP程序仍然使用旧的方法,很容易受到这种攻击。

  作为文件上载的攻击方法的一个变种,我们看一下下面的一段代码:

  <?php 
    if (file_exists($theme)) // Checks the file exists on the local system (no remote files) 
  include("$theme"); 
  ?>

  如果攻击者可以控制“$theme”的话,很显然它可以利用“$theme”来读取远程系统上的任何文件。攻击者的最终目标是在远程服务器上执行任意指令,但是他无法使用远程文件,因此,他必须得在远程服务器上创建一个PHP文件。这乍看起来好象是不可能的,但是文件上载帮了我们这个忙,如果攻击者先在本地机器上创建一个包含PHP代码的文件,然后创建一个包含名为“theme”的文件域的表单,最后用这个表单通过文件上载把创建的包含PHP代码的文件提交给上面的代码,PHP就会把攻击者提交的文件保存起来,并把“$theme”的值设置为攻击者提交的文件,这样file_exists()函数会检查通过,攻击者的代码也将执行。

  获得执行任意指令的能力之后,攻击者显然想提升权限或者是扩大战果,而这又需要一些服务器上没有的工具集,而文件上载又一次帮了我们这个忙。攻击者可以使用文件上载功能上载工具,把她们存在服务器上,然后利用他们执行指令的能力,使用chmod()改变文件的权限,然后执行。例如:攻击者可以绕过防火墙或IDS上载一个本地root攻击程序,然后执行,这样就获得了root权限。

[库文件] 
正如我们前面讨论的那样,include()和require()主要是为了支持代码库,因为我们一般是把一些经常使用的函数放到一个独立的文件中,这个独立的文件就是代码库,当需要使用其中的函数时,我们只要把这个代码库包含到当前的文件中就可以了。 

最初,人们开发和发布PHP程序的时候,为了区别代码库和主程序代码,一般是为代码库文件设置一个“.inc”的扩展名,但是他们很快发现这是一个错误,因为这样的文件无法被PHP解释器正确解析为PHP代码。如果我们直接请求服务器上的这种文件时,我们就会得到该文件的源代码,这是因为当把PHP作为Apache的模块使用时,PHP解释器是根据文件的扩展名来决定是否解析为PHP代码的。扩展名是站点管理员指定的,一般是“.php”, “.php3”和“.php4”。如果重要的配置数据被包含在没有合适的扩展名的PHP文件中,那么远程攻击者很容易得到这些信息。 

最简单的解决方法就是给每个文件都指定一个PHP文件的扩展名,这样可以很好的防止泄露源代码的问题,但是又产生了新的问题,通过请求这个文件,攻击者可能使本该在上下文环境中运行的代码独立运行,这可能导致前面讨论的全部攻击。 

下面是一个很明显的例子: 

In main.php: 
<?php 
   = "/libdir"; 
   = "/languages"; 

  ... 

  include("/loadlanguage.php": 
?> 

In libdir/loadlanguage.php: 
<?php 
  ... 

  include("/"); 
?> 

当“libdir/loadlanguage.php”被“main.php”调用时是相当安全的,但是因为“libdir/loadlanguage”具有“.php”的扩展名,因此远程攻击者可以直接请求这个文件,并且可以任意指定“ 
[Session文件] 
PHP 4或更新的版本提供了对sessions的支持,它的主要作用是在PHP程序中保存页与页之间的状态信息。例如,当一个用户登陆进入网站,他登陆了这个事实以及谁登陆进入这个网站都被保存在session中,当他在网站中到处浏览时,所有的PHP代码都可以获得这些状态信息。 

事实上,当一个session启动时(实际上是在配置文件中设置为在第一次请求时自动启动),就会生成一个随机的“session id”,如果远程浏览器总是在发送请求时提交这个“session id”的话,session就会一直保持。这通过Cookie很容易实现,也可以通过在每页提交一个表单变量(包含“session id”)来实现。PHP程序可以用session注册一个特殊的变量,它的值会在每个PHP脚本结束后存在session文件中,也会在每个PHP脚本开始前加载到变量中。下面是一个简单的例子: 

<?php 
  session_destroy(); // Kill any data currently in the session 
   = "shaun"; 
  session_register("session_auth"); // Register  as a session variable 

上一页 [1] [2] [3] [4] [5] 下一页 




上一篇:PHP连接MYSQL的两种方法

下一篇:IIS 6 的 PHP 最佳配置方法

对PHP程序中的常见漏洞进行攻击 相关文章:
·全程攻击无线网络WEP加密(二)
·全程攻击无线网络WEP加密(一)
·各种病毒分析及攻击防御手册
·不怕被攻击 Windows系统防黑技巧七招
·黑客攻击与防守
·Windows系统用户摆脱黑客攻击的方法
·避免恶意攻击行为 网络服务器安全维护技巧
·IIS攻击与日志
·多种DDoS攻击技术方法
·[推荐]远程登录攻击
对PHP程序中的常见漏洞进行攻击 相关软件:
·手机炸弹-短信息攻击懒人版
·NTFS数据流攻击教程
·嵌入式木马攻击
·手机短信息攻击程序V1.0
·黑客的攻击手段及用户对策
·盗帅v2.1-SP1攻击程序使用简介
·懒人短消息攻击器
·网页攻击的另类利用
·黑客的攻击手段及用户对策 +PDG绿色迷你阅读器
·SQL注入法攻击

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.viphot.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.viphot.com All Rights Reserved. 鄂ICP备05000083号Powered by:vipcn