【问题标题】:Why filename.php.jpg will work as a PHP file? [duplicate]为什么 filename.php.jpg 将作为 PHP 文件工作? [复制]
【发布时间】:2012-10-02 21:50:55
【问题描述】:

可能重复:
Is it possible to execute PHP with extension file.php.jpg?

我不小心将文件上传到我的网站,它被黑了(愚蠢的我)。黑客用上传器上传了一个文件 index.php.jpg,然后简单地用它访问了我的网站(它是一个 shell99 脚本),但我不明白为什么它会起作用。有足够聪明的人来解释这个吗?

【问题讨论】:

  • 文件是index.php.jpg还是index.jpg.php
  • 因为事实上 nobody 对文件扩展名感兴趣 ;) 这只是提示文件中 可能 的内容,仅此而已.
  • 如果是 .php 你就是个傻猴子:P
  • @KingCrunch 这将是完美的,但事实并非如此。使用“扩展”比检查文件魔术字节快得多,因此 HTTP 依赖于此。

标签: php


【解决方案1】:

Apache 控制哪些文件扩展名可以和不能执行 PHP。这可以在服务器级别或每个站点级别进行控制(例如使用.htaccess)。

默认情况下,.jpg 扩展应该允许 PHP 执行。也许文件名真的是index.jpg.php 而你读错了。但是,如果文件名真的 index.php.jpg,您需要查看所有可能的位置并锁定您的配置,只允许.php 扩展程序执行 PHP。 p>

【讨论】:

  • 它是 index.php.jpg,因为该脚本只接受扩展名为 .jpg 或 .png 的文件。我在自己的服务器上没有该站点,所以我无权访问 apache 配置,所以我会向服务器所有者询问这个问题-
【解决方案2】:

文件名要么是伪造的,插入了 \x000 来欺骗 httpd,要么是 .htaccess 被植入以强制 PHP 处理 jpg 文件。

【讨论】:

  • 有趣。这究竟是如何工作的?又该如何避免?
  • 拜托,你能解释一下 \x000 是什么意思吗?
猜你喜欢
  • 1970-01-01
  • 2011-02-14
  • 1970-01-01
  • 2014-01-15
  • 1970-01-01
  • 2010-09-16
  • 2020-03-22
  • 2013-07-09
  • 2019-08-15
相关资源
最近更新 更多