【问题标题】:Code execution from uploaded files从上传的文件执行代码
【发布时间】:2011-04-27 00:07:38
【问题描述】:

我正在对我朋友的网站进行安全审核。其中一项功能是允许用户从 html 上传文件。唯一的验证是将文件重命名为当前时间戳。

我想知道,有没有办法上传恶意文件,以便当用户访问该文件的 url 时,它会执行代码(在服务器端)?

我尝试上传一个 hello-world php 脚本,但它只是显示代码而不是执行它。如果文件扩展名是.php,它会被执行,但是,没有文件扩展名(因为文件被重命名了)。

编辑:作为安全审计的一部分,我可以访问完整的源代码。如果我能在不使用它的情况下解决这个问题会更好,但如果需要,我可以回答有关源代码的任何问题。

【问题讨论】:

  • 我可以保证这不是恶意的。这是我正在参加的 Web 编程课程的作业。该网站存在许多安全漏洞(例如 SQL 注入和 XSS)。我正在尝试查看它的文件上传机制是否是另一个漏洞。
  • 你也可以看看“跨协议脚本”

标签: php file-upload security


【解决方案1】:

据我所知,上传文件并通过它访问它。浏览器不能在服务器端执行它,除非服务器设置为执行没有扩展名的文件。 但是,如果还有其他漏洞,例如本地文件包含,您可能可以上传并执行 php 脚本。

您可以在此处阅读有关文件包含的一些信息: Wiki on RFI (almost the same) 和这里 Document on LFI and how it can be used

是否可以执行该文件取决于服务器/站点设置,因此您必须自行对其进行渗透测试,以确定是否可以执行 php 脚本。

你可以在没有扩展名的文件中做的唯一事情是,正如你提到的你自己,XSS,但仅限于旧版浏览器(IE8 及以下版本易受攻击,大多数其他浏览器不是。)

【讨论】:

  • “self XSS”是什么意思?
【解决方案2】:

安全扫描器Chorizo! 可能会引起您的兴趣:

https://chorizo-scanner.com/

该解决方案由一家公司实施,该公司从事日间 PHP 咨询和编码工作。

这是一项付费服务​​。一次扫描是免费的。

【讨论】:

    【解决方案3】:

    好吧,您将始终面临风险的一件事是提供将恶意代码发送到服务器的可能性 - 他们是否能够仅通过查看特定文件的 URL 来执行它并不是全部你必须考虑一下。

    如果您的代码中存在一个漏洞,您可以动态地包含或打开服务器上的本地文件,那么您可以简单地包含(现在)要执行的本地恶意代码。现在,这种攻击甚至在人们试图在远程服务器上包含代码时也很常见,但是一些设置被配置为防止包含可以阻止这些攻击的远程文件。如果代码在机器上并且在您的可执行代码中发现了弱点,那么这样的配置仍然会使您容易受到攻击。

    这只是一个想法——我不会对此过于担心或恐慌,但我也不会完全排除它。

    【讨论】:

    • 好主意,但是 php 从不使用“include”或“require”语句。
    【解决方案4】:

    据我了解,很多 Web 输出依赖于读取文件而不是实际执行它们。服务器需要特定权限才能执行文件。

    解决方法是先检查上传的文件类型是否允许。如果您只是上传图片 - 您不需要 .php 脚本。但这并不能阻止我创建 bad.php 并将其上传为 bad.jpg。

    例如,我(在我的 ubuntu 机器上)上传了一个具有 777 权限的 php 文件,并且只能通过键入 php hello.php 来运行它。您通常不会对某人上传的文件执行 include(),因此我相信大多数代码都与可读性有关。

    关于文件包含的维基百科页面是一个好的开始,其中包含一个 PHP 示例: https://en.wikipedia.org/wiki/File_inclusion_vulnerability

    【讨论】:

      【解决方案5】:

      使用 javascript 上传文件。 js漏洞很多。

      http://en.wikipedia.org/wiki/Cross-site_scripting

      【讨论】:

      • 由于其他原因,该站点已经非常容易受到 XSS 攻击。我正在寻找是否可以找到其他漏洞。
      猜你喜欢
      • 2020-01-19
      • 1970-01-01
      • 2021-04-27
      • 2023-03-13
      • 1970-01-01
      • 2020-10-12
      • 2012-02-26
      • 2021-06-06
      • 2012-03-20
      相关资源
      最近更新 更多