大家好,又见面了,我是你们的朋友全栈君。
目录
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原理介绍
假设一个用户表:
http://www.cnblogs.com/userinfo.php?id=1
id=1获得lisi的信息,如果用户篡改成id=2就获得了zs的信息。
其它可能不安全对象直接引用
- 文件
- 路径
- 数据库记录(常见)
- Key
把如上作为URL或者表单的一部分,让前端可以控制。那么都是有Insecure Direct Object Reference。
Black Box Testing
- 爬虫采集请求参数带id的URL
- 遍历常规数字查看是否能得到不一样的响应包
转载于:https://www.cnblogs.com/mysticbinary/articles/10881677.html
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/137524.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...