- 安全测试教程
- 安全测试 - 首页
- 安全测试 - 概述
- 安全测试 - 流程
- 安全测试 - 恶意软件
- HTTP协议基础
- HTTPS协议基础
- 编码和解码
- 安全测试 - 密码学
- 安全测试 - 同源策略
- 安全测试 - Cookie
- 黑客攻击Web应用程序
- 安全测试 - 注入
- 测试身份验证失效
- 测试跨站脚本攻击
- 不安全的直接对象引用
- 测试安全配置错误
- 测试敏感数据泄露
- 缺少功能级访问控制
- 跨站请求伪造
- 存在漏洞的组件
- 未经验证的重定向和转发
- 安全测试 - Ajax安全
- 测试安全 - Web服务
- 安全测试 - 缓冲区溢出
- 安全测试 - 拒绝服务
- 测试恶意文件执行
- 安全测试 - 自动化工具
- 安全测试有用资源
- 安全测试 - 快速指南
- 安全测试 - 有用资源
- 安全测试 - 讨论
不安全的直接对象引用
当开发人员公开对内部实现对象的引用(例如文件、目录或数据库密钥)而没有任何验证机制时,可能会发生直接对象引用。这允许攻击者操纵这些引用以访问未授权的数据。
让我们借助简单的图表了解此缺陷的威胁代理、攻击媒介、安全弱点、技术影响和业务影响。
示例
应用程序在访问帐户信息的SQL调用中使用了未经验证的数据。
String sqlquery = "SELECT * FROM useraccounts WHERE account = ?"; PreparedStatement st = connection.prepareStatement(sqlquery, ??); st.setString( 1, request.getParameter("acct")); ResultSet results = st.executeQuery( );
攻击者修改浏览器中的查询参数以指向Admin。
http://webapp.com/app/accountInfo?acct=admin
动手操作
步骤1 - 登录Webgoat并导航到访问控制缺陷部分。目标是通过导航到其所在路径来检索tomcat-users.xml。以下是场景的快照。
步骤2 - 文件的路径显示在“当前目录是”字段中 - C:\Users\userName$\.extract\webapps\WebGoat\lesson_plans\en,我们也知道tomcat-users.xml文件保存在C:\xampp\tomcat\conf下。
步骤3 - 我们需要遍历当前目录的所有路径并从C:\驱动器导航。我们可以通过使用Burp Suite拦截流量来执行相同的操作。
步骤4 - 如果尝试成功,它将显示tomcat-users.xml,并显示消息“恭喜。您已成功完成本课程。”
预防机制
开发人员可以使用以下资源/要点作为指南,以在开发阶段本身防止不安全的直接对象引用。
开发人员应仅对间接对象引用使用一个用户或会话。
还建议在从不受信任的来源使用直接对象引用之前检查访问权限。
广告