做网站用哪个软件,信息产业部 备案网站,网站怎样做seo,app网站建设阿里巴巴Insecure Direct Object References 直接对象引用 直接对象引用是指应用程序使用客户端提供的输入来访问数据和对象。
例子 使用 GET 方法的直接对象引用示例可能如下所示
https://some.company.tld/dor?id12345
https://some.company.tld/images?img12345
https://some.…Insecure Direct Object References 直接对象引用 直接对象引用是指应用程序使用客户端提供的输入来访问数据和对象。
例子 使用 GET 方法的直接对象引用示例可能如下所示
https://some.company.tld/dor?id12345
https://some.company.tld/images?img12345
https://some.company.tld/dor/12345
其他方法 POST、PUT、DELETE 或其他方法也可能容易受到影响主要仅在方法和潜在有效载荷上有所不同。
不安全的直接对象引用 当引用未得到正确处理时这些被认为是不安全的并允许授权绕过或披露可用于 执行用户不应能够执行或访问的操作或访问数据。 假设作为用户您去查看您的个人资料URL 如下所示
https://some.company.tld/app/user/23398
…您可以在那里查看您的个人资料。如果导航到以下位置会发生什么情况
https://some.company.tld/app/user/23399…或在末尾使用另一个数字。如果您可以操作数字用户 ID并查看他人的配置文件则对象引用是不安全的。 当然这可以检查或扩展到 GET 方法之外以查看数据也可以操作数据。
更多好读物 在我们继续练习之前这里有一些关于不安全的直接对象引用的好读物
https://www.owasp.org/index.php/Testing_for_Insecure_Direct_Object_References_OTG-AUTHZ-004
https://www.owasp.org/index.php/Top_10-2017_A5-Broken_Access_Control
https://cheatsheetseries.owasp.org/cheatsheets/Insecure_Direct_Object_Reference_Prevention_Cheat_Sheet.html
https://www.owasp.org/index.php/Top_10_2013-A4-Insecure_Direct_Object_References
http://cwe.mitre.org/data/definitions/639.html
先进行身份验证后滥用授权 许多访问控制问题容易受到经过身份验证但未经授权的用户的攻击
0x02 直接使用tom cat登录
0x03 页面上没显示的属性是role和userid 0x04 填写为WebGoat/IDOR/profile/2342384 提交意思是直接使用userid就可以查询该id的信息。 如果知道了其他用户的id那就也可以查询信息了。 在restful风格中提供使用同样的url不同的方法来进行处理可以利用这样的模式比如修改方法传body看能否对某些属性做出修改。
安全的對象引用 1、要有权限控制文档。 2、水平和垂直权限控制通常我们使用角色来进行权限控制但是同样角色的用户也可能获取到其他用户的信息这就是水平权限也需要进行控制。 3、审计。权限控制规则应该包括哪些操作应该被记录下来如超级用户或者管理员修改了其他人的信息应该有日志记录。 另外试图破坏权限控制机制的操作也应该记录下来。 4、使用间接引用。这个的方法用的比较少可以hash编码或者其他的方法使客户端看到的id不是真实的引用对象 这会降低一些处理效率但是也容易被猜测暴力破解或者反编译。 5、权限控制API 如 JSON Web Tokens (https://jwt.io和Secure Token Binding
Missing Function Level Access Control
缺少功能级别访问控制 访问控制例如通过输出编码防止 XSS可能很难维护。人们需要确保它在整个应用程序中正确执行因此在每个方法/函数中。 IDOR 与缺少功能级访问控制 事实上很多人包括本课的作者会将功能级访问控制和 IDOR 组合成“访问控制”。为了 OWASP Top 10 和这些教训我们将做出区分。最明显的区别是 IDOR 更多的是“水平”或“横向”访问控制问题而缺少功能级别访问控制会“暴露功能”。尽管此处的 IDOR 课程演示了如何公开功能至少向具有相同角色的其他用户但我们将研究可能公开功能的其他方式。 依靠默默无闻 人们可以依靠 HTML、CSS 或 JavaScript 来隐藏用户通常不访问的链接。过去曾出现过网络路由器尝试在 UI 中使用 javascript 保护隐藏管理功能的情况Blogger: Time Warner Routers Still Hackable Despite Company Assurance | WIRED。 寻找隐藏物品 通常会有一些提示来查找 UI 未公开公开的功能...... HTML 或 JavaScript 注释 注释掉的元素 通过 CSS 控件/类隐藏的项 0x02 在页面源码找到两个没有用到的链接 0x03 本题需要利用上一题找到的信息。 根据上一题的信息收集我们得知了/users与/config链接但是我直接访问localhost/WebGoat/users没有任何可用的信息一开始以为是题目问题知道看别人的解法请求/users时把content-type改为application/json 得到hash值。