- 安全测试教程
- 安全测试 - 主页
- 安全测试 - 概述
- 安全测试 - 流程
- 安全测试-恶意软件
- HTTP 协议基础知识
- HTTPS 协议基础知识
- 编码与解码
- 安全测试-密码学
- 安全测试 - 同源策略
- 安全测试 - Cookie
- 黑客网络应用程序
- 安全测试-注入
- 测试损坏的身份验证
- 测试跨站脚本
- 不安全的直接对象引用
- 测试安全配置错误
- 测试敏感数据暴露
- 缺少功能级别访问控制
- 跨站请求伪造
- 有漏洞的组件
- 未经验证的重定向和转发
- 安全测试 - Ajax 安全
- 测试安全性 - Web 服务
- 安全测试 - 缓冲区溢出
- 安全测试 - 拒绝服务
- 测试恶意文件执行
- 安全测试 - 自动化工具
- 安全测试有用的资源
- 安全测试 - 快速指南
- 安全测试 - 有用的资源
- 安全测试 - 讨论
安全测试-恶意文件执行
开发人员经常直接使用可能存在漏洞的输入或将可能存在漏洞的输入与文件连接起来,或者假设输入文件是真实的。如果未正确检查数据,可能会导致 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。
步骤 5 - 通过导航到 jsp 文件,将不会向用户发送任何消息。
步骤 6 - 现在刷新您上传 jsp 文件的会话,您将收到消息“* 恭喜您。您已成功完成本课程”。
预防机制
- 使用网站权限保护网站。
- 采取Web应用程序安全对策。
- 了解 IIS 7.0 中的内置用户和组帐户。