首页
新闻
UniX技术
数据库
经验交流
PHP
Linux考试认证
首页
>
PHP
如何对PHP程序中的常见漏洞进行攻击(下)
时间:2009-05-03 11:16:52 作者:chinaitlab
我要投稿
Linux初探欢迎您的投稿,投放方法请点击
这里
查看,我们会定期赠送精美小礼品给优秀的投稿作者。海纳百川 取则行远!LinuxGoo欢迎您的到来。
如何对PHP程序中的常见漏洞进行攻击(下)
翻译:analysist(分析家)
来源:http://www.china4lert.org 如何对PHP程序中的常见漏洞进行攻击(下) 原著:Shaun Clowes ......
如何对PHP程序中的常见漏洞进行攻击(下)
翻译:analysist(分析家)
来源:http://www.china4lert.org
如何对PHP程序中的常见漏洞进行攻击(下)
原著:Shaun Clowes <http://www.securereality.com.au/>
翻译:analysist <http://www.nsfocus.com/>
[库文件]
正如我们前面讨论的那样,include()和require()主要是为了支持代码库,因为我们一般是把一些经常使用的函数放到一个独立的文件中,这个独立的文件就是代码库,当需要使用其中的函数时,我们只要把这个代码库包含到当前的文件中就可以了。
最初,人们开发和发布PHP程序的时候,为了区别代码库和主程序代码,一般是为代码库文件设置一个“.inc”的扩展名,但是他们很快发现这是一个错误,因为这样的文件无法被PHP解释器正确解析为PHP代码。如果我们直接请求服务器上的这种文件时,我们就会得到该文件的源代码,这是因为当把PHP作为Apache的模块使用时,PHP解释器是根据文件的扩展名来决定是否解析为PHP代码的。扩展名是站点管理员指定的,一般是“.php”, “.php3”和“.php4”。如果重要的配置数据被包含在没有合适的扩展名的PHP文件中,那么远程攻击者很容易得到这些信息。
最简单的解决方法就是给每个文件都指定一个PHP文件的扩展名,这样可以很好的防止泄露源代码的问题,但是又产生了新的问题,通过请求这个文件,攻击者可能使本该在上下文环境中运行的代码独立运行,这可能导致前面讨论的全部攻击。
下面是一个很明显的例子:
In main.php:
<?php
$libDir = "/libdir";
$langDir = "$libdir/languages";
...
include("$libdir/loadlanguage.php":
?>
In libdir/loadlanguage.php:
<?php
...
include("$langDir/$userLang");
?>
当“libdir/loadlanguage.php”被“main.php”调用时是相当安全的,但是因为“libdir/loadlanguage”具有“.php”的扩展名,因此远程攻击者可以直接请求这个文件,并且可以任意指定“$langDir”和“$userLang”的值。
[Session文件]
PHP 4或更新的版本提供了对sessions的支持,它的主要作用是在PHP程序中保存页与页之间的状态信息。例如,当一个用户登陆进入网站,他登陆了这个事实以及谁登陆进入这个网站都被保存在session中,当他在网站中到处浏览时,所有的PHP代码都可以获得这些状态信息。
1
/
4
1
2
3
4
下一页
尾页
如果您需转载 如何对PHP程序中的常见漏洞进行攻击(下),请注明来自LinuxGoo.com,其版权归原作者所有。请广大网友留言时遵纪守法,使用文明用语。如果您在应用中有什么问题,请在下面留言,我们会尽快解答。
来顶一下
返回首页
发表评论
共有
条评论
用户名:
密码:
验证码:
匿名发表
相关文章
关于SQLSERVER的max degree of parallelism
max degree of parallelism说明:http://msdn.microsoft.com/zh-cn/library
全面了解Linux与FreeBSD的syscall相同与不
--]概述又是一个不眠的夜晚,其实这篇文档是不应该发表的,因为保密的
linux认证:Linux服务器维护中的锦囊妙计
Linux 服务器虽然相对来说比Windwos服务器要稳定与安全。但是工欲善其事,
SQL语句大全
--语 句 功 能 --数据操作 SELECT --从数据库表中检索数据行和列
在Ubuntu7.04下安装虚拟机VMware Server
一、安装依赖包sudo apt-get install libx11-6 libx11-dev libxtst6
于Linux的LUPA认证系统beta2发布
经过本团队一年多的开发,一套基于Linux平台的C/S结构的考试系统基本开发完
关于字体路径Windows和Linux差异
ImageTTFText($im,16,0,70,30,$blue,"./simkai.ttf",$char);使用此函数
2.1. 为什么要水平测试
2.1.为什么要水平测试 许多中型到大型的MySQL部署会有专门的部门来进行水
php4的彩蛋
今天看了一些代码,看到了一个小彩蛋。
<?
/* env.php */
phpinfo();
?
新手必读:RHCE课堂实验笔记(4)
单元五实验 文件访问权限 估计用时:30分钟 目标:熟悉多个修改文件
A Quick Look At Compression In SQL 2008
A Quick Look At Compression In SQL 2008 SQL2008数据压缩功能之一瞥Den
SUSELinuxDesktopGnome桌面快捷键整理
ctrl shift f (窗口全屏) ctrl shift n (新建konsole窗口) ctrl sh
linux认证辅导:unix下的hosts文件
1. 关于/etc/host,主机名和IP配置文件 Hosts - The static table looku
PHP5.2 APACHE2.2 BugFree1.0的安装
1.安装APACHE先把机器安的IIS停掉(如果启动了的话,因为默认安装APACHE使
系统管理64位系统fedora10配置
一、安装第三方软件源: Fedora 8, 9 or 10: su -c ’rpm -Uvh http:
Zend Framework 入门(3)—错误处理
undefined
栏目热门
PHP程序为什么"不适用"大型系统的9大原因
PHP的GD函数imagettftext()要注意默认字符
精通PHP的十大要点
屏蔽浏览器缓存另类方法
phpMyAdmin安装注意事项
站内搜索:
Linux
高级搜索
Powered by
Linux初探
© 1999-2009
RSS