开发手册 欢迎您!
软件开发者资料库

不安全对象的引用

不安全的对象的引用 - 从简单和简单的步骤学习安全测试从基本到高级概念,包括简介,社会工程,枚举,嗅探器,麻痹软件,协议基础,编码,密码学,同源策略,Cookie,基本CIA三合会,OWASP十大安全威胁,网络攻击,缓冲区溢出,会话劫持,自动化笔测试工具。

当开发人员公开对内部实现对象(例如文件,目录或数据库密钥)的引用而没有任何允许攻击者操纵这些引用来访问未授权数据的验证机制时,可能会发生直接对象引用.

在简单的图表的帮助下,让我们了解这个漏洞的威胁代理,攻击向量,安全弱点,技术影响和业务影响.

insecure direct obj ref

示例

应用程序在SQL调用中使用未验证的数据正在访问帐户信息.

String sqlquery = "SELECT * FROM useraccounts WHERE account = ?";PreparedStatement st = connection.prepareStatement(sqlquery, ??);st.setString( 1, request.getParameter("acct"));ResultSet results = st.executeQuery( );

攻击者在其浏览器中修改查询参数以指向管理员.

http://webapp.com/app/accountInfo?acct=admin

Hands ON

第1步登录Webgoat并导航到访问控制缺陷部分.目标是通过导航到它所在的路径来检索tomcat-users.xml.下面是该场景的快照.

1.insecure direct obj ref1

第2步该文件的路径显示在"当前目录是"字段中 -  C:\Users\userName $ \.extract\webapps\WebGoat\lesson_plans \我们也知道tomcat-users .xml文件保存在C:\ xampp \ tomcat \ conf

步骤3 我们需要遍历当前目录并从C:\ Drive导航.我们可以通过使用Burp Suite拦截流量来执行相同操作.

2 insecure direct obj ref

第4步如果尝试成功,它将显示tomcat-users.xml,并显示消息"祝贺您.您已成功完成本课程."

2不安全的直接对象

预防机制

开发人员可以使用以下资源/点作为指导来防止不安全的直接对象在开发阶段本身的引用.

  • 开发人员应该只使用一个用户或会话进行间接对象引用.

  • 在使用来自不受信任来源的直接对象引用之前,还建议检查访问权限.