安全测试 - 恶意文件执行
开发人员经常直接使用或将潜在的易受攻击的输入与文件连接起来,或者假设输入文件是真实的。当数据没有得到正确检查时,这可能导致易受攻击的内容被 Web 服务器处理或调用。
示例
一些经典示例包括 −
- 将 .jsp 文件上传到 Web 树。
- 上传要调整大小的 .gif。
- 上传大文件。
- 上传包含标签的文件。
- 将 .exe 文件上传到 Web。
动手操作
步骤 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。
步骤 5 − 通过导航到 jsp 文件,不会向用户显示任何消息。
步骤 6 −现在刷新您已上传 jsp 文件的会话,您将收到消息"* 恭喜。您已成功完成课程"。
预防机制
- 使用网站权限保护网站。
- 采取对策确保 Web 应用程序安全。
- 了解 IIS 7.0 中的内置用户和组帐户。