WebGoat代码审计-06-有缺陷的访问控制
WebGoat代码审计 06 有缺陷的访问控制
0x01 前言
这段前言是不得不写咯 ~
这篇文章也比较简单,源代码的问题基本都是逻辑漏洞
这一篇的名为 **”有缺陷的访问控制”**,英文被称作 **”Broken Access Control”**。这一块如果总得来说非常复杂,水平提权,垂直提权,业务逻辑漏洞,身份认证,氦,我感觉太杂了。所以这一块的总结,个人或许讲解的不会很好。
而这一块在 WebGoat 当中也被分为两个部分,不安全的直接引用,缺少功能级别的访问控制。
自己日后也要做一个类似于 WebGoat 的靶场,所以自己思考地比较多。
0x02 Insecure Direct Object References
1. 直接对象引用,Direct Object References 是什么
- 直接对象引用是指应用程序使用客户端提供的输入进行访问。
例子
使用 GET 方法的直接对象引用示例可能如下所示
1 | https://some.company.tld/dor?id=12345 |
而不安全的直接引用,呃,就是越权查看而已,我不太懂为什么要吹的这么 cjb。
2. IDOR PageLesson2 简单登录
题目部分
直接以 username = tom
以及 password = cat
登陆即可,只是为了后续的做题更加顺利而已,没什么用。但是这里我们可以去看一看源码,看一看是怎么实现登录的。毕竟为自己以后的开发做铺垫。
源码部分
文件:IDORLogin.java
首先是数据库,并没有连接数据库,而是使用 HashMap
下面的登录阶段进行了强判断,主要是 username 与 password 的判断
1 | if ("tom".equals(username) && idorUserInfo.get("tom").get("password").equals(password)) |
3. IDOR PageLesson3
题目部分
也没啥好说的,就比对了一下前端界面的 Profile 与 Burpsuite 发包之后的 Response 回应即可,发现多出来了 Userid 与 role。
在框中提交即可
源码部分
文件:IDORDiffAttributes.java
- 比较简单,也是进行了呆笨的判断。
4. IDOR PageLesson4 越权查看
这种越权查看其实是我个人工作的时候遇到最多的。
题目界面
题目让我们直接越权查看信息,呃就挺简单的。
- 在框中输入
WebGoat/IDOR/profile/2342384
即可。 - 这就是最常见的越权查看,基本上的程序,如果开发者没有安全意识的话,是最容易造成的漏洞,一般我自己挖洞也会去尝试。并且这最后的参数
23422384
可以进行爆破,能够爆破更多的消息。
源码界面
文件:IDORViewOwnProfileAltUrl.java
判断还是比较简单与呆笨的
5. IDOR PageLesson5 越权查看他人信息
题目界面分两个部分
- 越权查看他人信息
- 越权编写他人信息
- 题目让我们越权查看他人的消息
那么就按照我上题来攻击,爆破 userid
经过爆破,找到 userid 为 2342388
如果是要提交 src 的话,就需要这种越权查看的一起提交上去,也是替换 userid 即可。
0x03 Missing Function Level Access Control
- 个人觉得这其实不太算访问控制吧,见到可见和非可见的消息。
1. Missing Function Level Access Control PageLesson2
题目界面
- 要求找到两个藏起来的菜单项
f12 一下,在 Admin 附近找到了两个 href,分别是 users 与 config;输入即可。提交的话首字母要大写,避坑 ~
源码部分
文件:MissingFunctionACHiddenMenus.java
- 简单的强判断
1. Missing Function Level Access Control PageLesson3
题意:找到自己的 Hash 并提交
题目界面
我们发现个人信息的界面是在 /Users 接口下,尝试访问 /Users 接口。
访问 /Users 接口之后居然返回 500 了;有点懵逼,因为再怎么说服务器端那边也不可能出问题吧。后来才知道要修改 Content-Type 为 application/json
才可以。
提交自己的 Hash 即可。
源码界面
文件:MissingFunctionACUsers.java 和 MissingFunctionACYourHash.java
- 将所有用户列出,此时需要 Content-Type 为
application/json
- 判断的语句
不算很难吧,但是自己开发起来想想就累
0x04 小结
怎么说呢,总的来说还是给我一种逻辑方面的问题,自己早些时候敲代码也被学长说过,逻辑太差。基本上就是乱敲,而且不考虑安全问题。
- 本文标题:WebGoat代码审计-06-有缺陷的访问控制
- 创建时间:2022-04-24 17:22:09
- 本文链接:2022/04/24/WebGoat代码审计-06-有缺陷的访问控制/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!