Insecure Direct Object References

Insecure Direct Object References目录越权分类危害解决越权访问一些心得InsecureDirectObjectReference不安全对象是怎么直接被引用的?其它可能不安全对象直接引用…

大家好,又见面了,我是你们的朋友全栈君。


Insecure Direct Object Reference = IDOR

越权

Insecure Direct Object Reference 一般能导致越权。

分类

  • 平行越权
  • 垂直越权

危害

  • 泄露数据
  • 绕过权限控制

解决越权访问

1.用户必须登录,登录之后将username写入seession中;
2.查看个人信息时,从seession中取出username,而不是从GET/POST取username;

一些心得

很多时候越权不是程序员故意写出来的,而是产品和程序在沟通的时候没有沟通好导致的,经验不丰富的程序员容易就入坑了。我举例一个案例:这个功能不需要登录 ,就给用户展示。程序员看不用登录那么就不能从session中取uid,那就改从前端获取吧。他们也不会想有token这种东西。

Insecure Direct Object Reference

由于这种是逻辑漏洞,对系统没什么危害。很难有自动化的检测工具,因为固定的程序很难界定这种是正常请求,还是Insecure Object Direct Reference。

所以这种一般需要人工审核一下,代码审计方法如下:
ide全局搜索uid 、 id 、uuid … 类似这种标识符,搜索到就看看这些id是否来之外部,是的话,就666了。

黑盒审计方法如下:
或者通过SOC收集到URL,统一将id=xxx替换一下,看响应是否都不一致。

不安全对象是怎么直接被引用的?

DOR原理介绍

假设一个用户表:

1552062-20190704152625555-1058074228.png

http://www.cnblogs.com/userinfo.php?id=1
id=1获得lisi的信息,如果用户篡改成id=2就获得了zs的信息。

其它可能不安全对象直接引用

  • 文件
  • 路径
  • 数据库记录(常见)
  • Key

把如上作为URL或者表单的一部分,让前端可以控制。那么都是有Insecure Direct Object Reference。

Black Box Testing

  1. 爬虫采集请求参数带id的URL
  2. 遍历常规数字查看是否能得到不一样的响应包

转载于:https://www.cnblogs.com/mysticbinary/articles/10881677.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/137524.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python中延时函数_python延时函数

    python中延时函数_python延时函数广告关闭腾讯云11.11云上盛惠,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元!可以使用python的time模块来实现类似于c中的sleep函数作用代码如下:importtimedefsleep(mytime=‘’):time.sleep(mytime)printcallsleepsleep(5)#sleep5sprint‘sleepen…

    2022年6月17日
    62
  • 什么是portal?

    什么是portal?Portal 是一个基于 web 的应用程序 它主要提供个性化 单点登录 不同来源的内容整合以及存放信息系统的表示层 nbsp portal 主要有 3 方面的功能 1 portlet 容器 类似于 servlet 所有的 portlet 都部署在 portlet 容器里 该容器控制 portlet 的生命周期并为其提供必要的资源和环境信息 portlet 容器负责初始化和销毁 portlets 并向 portlets 传送用户请

    2025年7月14日
    6
  • ZooKeeper学习之路 (五)ZooKeeper API的简单使用 增删改查

    ZooKeeper学习之路 (五)ZooKeeper API的简单使用 增删改查

    2022年3月13日
    50
  • 一次搞定js中的this指向

    一次搞定js中的this指向

    2021年7月6日
    84
  • layui 如何去dom_layui 弹出层

    layui 如何去dom_layui 弹出层这是一个可以重要也可以不重要的方法,重要的是,它的权利真的很大,尤其是在模块化加载layer时,你会发现你必须要用到它。它不仅可以配置一些诸如路径、加载的模块,甚至还可以决定整个弹层的默认参数。而说它不重要,是因为多数情况下,你会发现,你似乎不是那么十分需要它。但你真的需要认识一下这位伙计。如果您是采用seajs或者requirejs加载layer,你需要执行该方法来完成初始化的配置。比如:lay…

    2022年6月11日
    37
  • 关闭对话框,OnClose和OnCancel

    关闭对话框,OnClose和OnCancel

    2021年11月28日
    70

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号