安全测试-恶意文件执行


开发人员经常直接使用可能存在漏洞的输入或将可能存在漏洞的输入与文件连接起来,或者假设输入文件是真实的。如果未正确检查数据,可能会导致 Web 服务器处理或调用易受攻击的内容。

例子

一些经典的例子包括 -

  • 将 .jsp 文件上传到 Web 树中。
  • 上传要调整大小的 .gif。
  • 上传大文件。
  • 上传包含标签的文件。
  • 将 .exe 文件上传到网络树中。

动手

步骤 1 - 启动 WebGoat 并导航到恶意文件执行部分。该场景的快照如下 -

恶意文件执行

步骤 2 - 为了完成本课程,我们需要在上述位置上传 guest.txt。

步骤 3 - 让我们创建一个 jsp 文件,以便在执行 jsp 时创建 guest.txt 文件。当我们执行 jsp 文件的内容时,jsp 的命名在此上下文中不起任何作用。

<HTML> 
   <% java.io.File file = new 
      java.io.File("C:\\Users\\username$\\.extract\\webapps\\WebGoat\\mfe_target\\guest.txt"); 
      file.createNewFile(); %> 
</HTML>

步骤 4 - 现在上传 jsp 文件并在上传后复制该文件的链接位置。上传需要一个图像,但我们正在上传一个 jsp。

malacious_file_execution1

步骤 5 - 通过导航到 jsp 文件,将不会向用户发送任何消息。

步骤 6 - 现在刷新您上传 jsp 文件的会话,您将收到消息“* 恭喜您。您已成功完成本课程”。

malacious_file_execution2

预防机制

  • 使用网站权限保护网站。
  • 采取Web应用程序安全对策。
  • 了解 IIS 7.0 中的内置用户和组帐户。