同一个web目录,已存在旧的php文件可以执行,新增加的php文件显示403 这是什么情况?

Sct7p | 2014-06-06 01:02

碰到一变态站点,linux下的nginx 在同一个web目录已存在旧的php文件可以执行,新增加的php文件返回403页面, 这是什么情况?

[原文地址]

各种吐槽:

1#

蟋蟀哥哥 (̷ͣ̑̆ͯ̆̋͋̒ͩ͊̋̇̒ͦ̿̐͞҉̷̻̖͎̦̼) | 2014-06-06 01:09

新上传的php文件权限不对呗。。。比如上传的文件权限都是700

2#

Sct7p | 2014-06-06 01:14

@蟋蟀哥哥 那原本存在的是另外一种权限? 都是同目录,同样是脚本后缀。。新上传的却不能执行,这是倒是第一次碰到。。像这种要怎么配置?

3#

好基友一辈子 | 2014-06-06 07:59

我在win下碰到过一个站,5秒钟恢复一次。。写什么都被删

4#

煦阳。 | 2014-06-06 08:26

@Sct7p 我刚好遇到过。 rsync拿的。

情况是这样,我本地传上去的php 不执行。 而他原本存在的php就可以执行。

然后我下载一个他原来的php 然后插上一句话。 在传上去》。 然后就可以了。

5#

狂小子 | 2014-06-06 08:49

一、nginx的配置:只请允许一些固定的文件正常运行,所以新增加的就不行,可以暂时把新增加的改名成原有的文件名测试下看看。

二、不知道你是怎样上传这个新文件,也许是这个文件的权限不正确(用户)。

6#

核攻击 (统治全球,奴役全人类!毁灭任何胆敢阻拦的有机生物!) | 2014-06-06 08:57

权限问题,新文件要么不是默认权限,要么就是被安全软件限制了。

7#

我了个去 (看啥,头像不是我) | 2014-06-06 09:01

可能是有规则路由,之前遇到过一个jsp的站也是,替换或修改现有文件试试。

8#

坏虾 (黑阔都被爆菊花~) | 2014-06-06 09:02

rewrite 或者看看其他的配置文件

9#

M4ster | 2014-06-06 09:04

貌似可以用.htaccess来控制

10#

mramydnei (Keep hope alive) | 2014-06-06 09:05

@煦阳。 听你这么一说 感觉是文件名的白名单啊 你修改后改名字了?

11#

Chora (生存、生活、生命。) | 2014-06-06 09:05

有防篡改的文件系统,可以记录名称,大小,时间。也可能跟selinux有关系。个人意见

12#

索马里的海贼 | 2014-06-06 09:19

chmod 或者chown

你是root权限往里丢的php吧

13#

woody | 2014-06-06 09:30

@Sct7p ls -l 看看权限一样么

14#

xcc | 2014-06-06 09:37

。。。楼主要是有root权限还用丢马吗。。

15#

Sct7p | 2014-06-06 09:49

@我了个去 @M4ster @woody @坏虾 @mramydnei @索马里的海贼 @Chora @好基友一辈子 @狂小子 @核攻击 @煦阳。 实际情况就是:原本存在的php文件不可修改(也就是不能覆盖文件名)但是图片可以覆盖(其他目录)。是Linux的服务器,web用的是nginx。。 话说nginx可以用.htaccess来控制?不是只有apache可以用.htaccess吗!!还有,我手上没有服务器权限

16#

xiaoL (http://www.xlixli.net) | 2014-06-06 14:59

@Sct7p 记得以前在一台java机子上也遇到过,新上传文件都是403,最后试了很久,通过一个刚开始没发现的目录上传成功执行的。

17#

Sct7p | 2014-06-06 15:30

@xiaoL 也就是说可能是目录的问题? 不知道该说linux对目录的限制太严格还是nginx对文件的限制太严格。。不过你说的换目录可以执行,但是我这个本身那个目录就存在的php文件却又不返回403。。现在最大可能就是写入文件的用户权限问题了。。

18#

骨灰 (给我一根烟的时间!!!) | 2014-06-06 20:37

chmod

19#

Sunshine (`'`'`'`'`'`'`'`'`'`'`'`') | 2014-06-06 22:34

@蟋蟀哥哥 我的倒不是403 ,而是不解析,直接给下载了,这是怎么回事

20#

蟋蟀哥哥 (̷ͣ̑̆ͯ̆̋͋̒ͩ͊̋̇̒ͦ̿̐͞҉̷̻̖͎̦̼) | 2014-06-06 22:42

@Sunshine 服务器不能解析呗

21#

腾讯厂商 (腾讯帝国) | 2014-06-06 22:54

403.cc 现在变成dn8.net了

22#

Black Angel | 2014-06-06 22:59

万一他chmod 源文件 777 然后设置你上传的为044 你也没法啊~

23#

Black Angel | 2014-06-06 22:59

或者444 400 ~

24#

Sct7p | 2014-06-06 23:54

@Sunshine 下载一般就是不解析,可能是目录限制问题。。或者你上传的跟站点所支持的脚本后缀不一样。。

25#

Sct7p | 2014-06-06 23:55

@Black Angel 应该是如你所说,linux对限权设置比较严谨

26#

Sct7p | 2014-06-06 23:56

@骨灰 没有服务器权限,没有执行命令权限

27#

Black Angel | 2014-06-07 00:17

@Sct7p 如果你是在web端上传的话,他是属主应该是apache或者是daemon 如题所说 你能写入文件(上传文件) 那么母文件夹的属主肯定是7, 而linux的权限设置是4,2,1 那么说明属主的权限是 写 读 运行,既然是这样的话而你上传了又不能打开,排除本地网络以及一系列本地的原因的话,肯定是做了后端上传运行的限制. 比如限制某个时间段以后某个用户上传的文件类型不给访问之类的.

28#

Black Angel | 2014-06-07 00:18

想突破试试抓包后 ../../ 之类的往上级目录传试试,或者换目录传.

29#

Black Angel | 2014-06-07 00:20

上面没说清楚,做某种限制应该是基于某目录, upfile* 之类的, 不可能对网站根目录进行这样的权限设置,所以我觉得办法就是换目录上传运行.

30#

Black Angel | 2014-06-07 00:21

突破了记得版聊回复一下思路及方法,谢谢.

31#

Black Angel | 2014-06-07 00:24

想起来了,或者就是你的马的里面的某些代码被某安全工具或者某安全策略给过滤或屏蔽也可能出现403的问题,随便弄一个文件进去试试,先弄一个正常的txt或者jpg进去看是不是能正常访问,如果可以再弄一个正常的php文件,就随便写一个内容为123的php文件试试,测试是不是拦截的代码,然后就能确定到底是权限问题还是拦截的你的马.

32#

Black Angel | 2014-06-07 00:25

没注意 nginx的启动用户不是apache或者daemon - - ,但是也一样,权限也是那样设置. 突破了记得说一声啊~

33#

Sunshine (`'`'`'`'`'`'`'`'`'`'`'`') | 2014-06-07 17:28

@蟋蟀哥哥 @Sct7p 都是同目录,之前存在的脚本可以解析,后面上传的就不可以解析

34#

gerfalke | 2014-06-08 00:21

权限问题

35#

Sct7p | 2014-06-08 00:56

@Black Angel 试过换了很多目录都不行。目录有很多,但是可写的目录只有一小部分(大多是"上传类目录"可以写,比如upload,images,file等一些目录),刚开始也认为是目录问题,但是后来发现一个可写目录存在php文件而且可执行,但是我传上去后发现自己上传的不能执行。

36#

Sct7p | 2014-06-08 00:58

@Black Angel 还有不是过滤代码的问题,刚开始我就想到了,所以试了上传无代码的php上去也是提示403.

37#

Black Angel | 2014-06-08 01:15

@Sct7p 那就应该是设置了某种权限,让某某用户上传的php可执行文件拓展名不给执行.这个权限设置可以是基于某启动用户,比如nolong的用户上传不给执行,或者过滤用户,或者就是某时间段过后上传的可执行文件后缀不给执行. 我猜测应该是这样.~ 如果有法传到根目录应该问题不大.

38#

asgoo | 2014-06-08 10:07

第一种情况:linux下权限问题,刚开始设置可读可写可执行777,为了安全,可以用umask命令来设置之后新建文件和文件夹的权限,一般不给可执行。第二种情况:php中含有危险代码,自动跳转到403页面,可以上传普通php来尝试。第一种情况概率比较大

39#

lxm | 2014-06-08 10:45

检查下selinux

40#

xsser (十根阳具有长短!!) | 2014-06-08 10:59

读写是由webserver权限进行的 执行可能却是后端的php cgi 这两个权限是不一样的 可能php没有对webserver的读权限

41#

骨灰 (给我一根烟的时间!!!) | 2014-06-08 23:30

@Sct7p 是不是防火墙白名单啊?