WebGoat 2023靶场搭建Broken Access Control通关

环境安装

靶机配置

安装java环境

sudo apt update 
sudo apt install openjdk-17-jdk

靶场拉取 

docker pull webgoat/webgoat

运行环境

docker run -p 0.0.0.0:8080:8080 -p 0.0.0.0:9090:9090 -e TZ=Europe/Amsterdam webgoat/webgoat

docker ps 查看

启动成功后访问:123.60.164.202:8080可能会遇到以下问题

访问123.60.164.202:8080/WebGoat/login即可

注册账号登录

WebWolf简介

靶场通关

General

General1        

随便输入zml

抓包

随便输入GET orPOST 然后输入数字抓包即可得到答案

General2

目标

点击提交后抓包,更改请求方式为GET 添加x-request-intercepted:true 删除请求正文

General3

General4

General5

(A1) Broken Access Control

输入数据后抓包cookie一直在变而且每次数值+1于是开始爆破cookie

第一次:hijack_cookie=1982942791734836260-1697249499605

第二次:hijack_cookie=1982942791734836261-1697249569892

第三次:hijack_cookie=1982942791734836263-1697249590889

第三次应该是1982942791734836262-1697249(569892-590889)才对所以意味着有一个用户拿到了这么一个令牌1982942791734836262-1697249(569892-590889),我们要枚举出来得到他

Insecure Direct Object References

抓包看响应包

  • 什么是restful,说人话就是类似动态页面静态化,使用get(查询)、post(更改)、put(新增)、delete(删除)四个方法来代表动作,请求的参数作为路径的一部分,比如,
    - 老式的url get查询指定id的写法: htttp://www.example.com/selectBook.do?id=1
    - restful写法:请求方法必须是Get http://www.example.com/books/1 1就是参数,get代表查询,books的s是必须加的
    - restful查询所有的写法 : http://www.example.com/books/
    - 同理,根据id删除的写法 http://www.example.com/books/1 方法必须是delete

  • restful模式通过隐藏了url上面的请求动作,显得安全一些,而且针对某个对象开发的url也统一了。

  • 回到正题,第4页需要通过post请求,提交一个restful路径来访问自己的配置文件,直接吧上面的路径放过来,加上id,就是restful风格的访问,

通过上面得知id是2342384

根据自己id2342384 点击查看个人资料抓包输入id枚举id

得到用户Buffalo Bill id:2342388

第二个任务是修改用户的配置文件

HTTP content-type

Content-Type(内容类型),一般是指网页中存在的 Content-Type,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件,这就是经常看到一些 PHP 网页点击的结果却是下载一个文件或一张图片的原因。

Content-Type 标头告诉客户端实际返回的内容的内容类型。

HTTP请求方式

这里我们利用PUT请求

缺少功能级访问控制

f12 查找定位隐藏程序

根据提示第2关通过的其中一个url对第3关有帮助

/access-control/users

/access-control/users-admin-fix

/access-control/config

直接URL输入第一个链接

因为这个网站前后端分离以及restful风格,所以content-type要改成json,获得了所有用户的信息,包括Jerry,过关

第四关,需要将当前登录到webgoat的用户添加到这个库,这样他就会判断会话用户存在,于是返回每个用户的数据时,加的是admin的盐,得到了jerry新的hash

NzQ1NDRjNjE2YzZlNTI0NzY1NmY3NDYxNmY2NzYyNjU3Nw==

NzQ1NDRjNjE2YzZlNTI0NzY1NmY2ZTY5NmQ2NDYx

base64解码

74544c616c6e5247656f74616f67626577
74544c616c6e5247656f6e696d6461

16进制解码

可以看出cooike就是前面一段加上用户名反过来

于是tom用户的cookie为tTLalnRGeomot经过16进制编码然后base64编码得到cookie

NzQ1NDRjNjE2YzZlNTI0NzY1NmY2ZDZmNzQ=

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值