WebGoat 8.1 靶场 刷题通关教程全攻略 - General

WebGoat 8.1 刷题通关教程全攻略 - General

    • HTTP Basics
      • 2. Try It!
      • 3. The Quiz
    • HTTP Proxies
      • 6. Intercept and modify a request
    • Developer Tools
      • 4. Try It! Using the console
      • 6. Try It! Working with the Network tab
    • Crypto Basiscs
      • 2. Base64 Encoding
      • 3. Other Encoding
      • 4. Plain Hashing
      • 6. Signatures
      • 8. Assignment
    • Writing new lesson
      • 6. Add an assignment to your lesson

HTTP Basics

2. Try It!

通过浏览器的开发者工具或代理抓包软件观察在输入框输入“name ”后点击 “Go” 按钮发出的POST请求与收到的响应。

WebGoat 8.1 靶场 刷题通关教程全攻略 - General_第1张图片
WebGoat 8.1 靶场 刷题通关教程全攻略 - General_第2张图片
WebGoat 8.1 靶场 刷题通关教程全攻略 - General_第3张图片
WebGoat 8.1 靶场 刷题通关教程全攻略 - General_第4张图片

3. The Quiz

通过上一步知道使用了 POST,而从之前的请求和响应中无法找到 magic number 相关信息,我们直接点 Go。
WebGoat 8.1 靶场 刷题通关教程全攻略 - General_第5张图片
WebGoat 8.1 靶场 刷题通关教程全攻略 - General_第6张图片
WebGoat 8.1 靶场 刷题通关教程全攻略 - General_第7张图片
观察到请求中的 Body 部分存在 magic_num ,填入即通关

HTTP Proxies

6. Intercept and modify a request

按要求先点击 Submit 按钮,查看拦截到的 POST 请求
WebGoat 8.1 靶场 刷题通关教程全攻略 - General_第8张图片
按要求对其进行修改,将 POST 改为 GET,将 Body 中的参数删去,在URL后添加 Query string parameter, 为?changeMe=Requests+are+tampered+easily, 并在头部添加字段 X-Request-Intercepted: True,发送后即可通关

WebGoat 8.1 靶场 刷题通关教程全攻略 - General_第9张图片
在这里插入图片描述

Developer Tools

4. Try It! Using the console

按要求在控制台输入命令即可看到结果

WebGoat 8.1 靶场 刷题通关教程全攻略 - General_第10张图片
WebGoat 8.1 靶场 刷题通关教程全攻略 - General_第11张图片

6. Try It! Working with the Network tab

点击”Go“按钮,在 ”网络“ 标签下监测,查看名为 network 的 POST请求,在 Payload 中即可找到 networkNum

WebGoat 8.1 靶场 刷题通关教程全攻略 - General_第12张图片
WebGoat 8.1 靶场 刷题通关教程全攻略 - General_第13张图片

Crypto Basiscs

2. Base64 Encoding

通过 Base64 解码,即可获得用户名和密码

WebGoat 8.1 靶场 刷题通关教程全攻略 - General_第14张图片
WebGoat 8.1 靶场 刷题通关教程全攻略 - General_第15张图片

3. Other Encoding

在 Google 搜索 WebSphere Encoder 找到对应加解密网页,输入即可得到解密内容
WebGoat 8.1 靶场 刷题通关教程全攻略 - General_第16张图片
WebGoat 8.1 靶场 刷题通关教程全攻略 - General_第17张图片

4. Plain Hashing

根据位数推测两个哈希值的算法,可知上面为 MD5,下面为 SHA256,通过尝试几个弱口令比对其哈希值即可得出答案

WebGoat 8.1 靶场 刷题通关教程全攻略 - General_第18张图片
WebGoat 8.1 靶场 刷题通关教程全攻略 - General_第19张图片

6. Signatures

这题是遇到的第一道有一定难度的题,需要掌握 openssl 的相关操作后才有做对这题的基础

WebGoat 8.1 靶场 刷题通关教程全攻略 - General_第20张图片
首先,我们对于给出的以“-----BEGIN PRIVATE KEY-----”开头,以“-----END PRIVATE KEY-----”结尾的私钥要有一个明确的认识,这是 PEM 格式的密钥,相关知识自行查询了解

首先,我们将给出的私钥保存到文件“test.key”中,注意,包含头部和尾部。
WebGoat 8.1 靶场 刷题通关教程全攻略 - General_第21张图片
使用命令

openssl rsa -modulus -in test.key -out test.modulus -noout

将模数打印到文件“test.modulus”中

WebGoat 8.1 靶场 刷题通关教程全攻略 - General_第22张图片

将文件中开头的"Modulus="和结尾的回车删除,只保留模数的数值

在这里插入图片描述

使用命令

openssl dgst -sign test.key -sha256 -out modulus.signature test.modulus

将模数经私钥签名后存入文件“modulus.signature”

可以看到签名后的结果无法正常显示出来

在这里插入图片描述

使用命令

openssl enc -base64 -in modulus.signature -out signature.base64

将签名后的结果进行 base64 编码存入文件“signature.base64”

WebGoat 8.1 靶场 刷题通关教程全攻略 - General_第23张图片

将模数和签名后经过 base64 编码后的结果填入题目空格处即可完成

8. Assignment

本题可以说是绪论部分的压轴题,有相当的难度

WebGoat 8.1 靶场 刷题通关教程全攻略 - General_第24张图片
首先使用给定指令安装实验 docker 容器
WebGoat 8.1 靶场 刷题通关教程全攻略 - General_第25张图片
通过命令

sudo docker exec -it <Container ID> bash 

打开容器的 bash 终端

尝试打开 /root 提示权限不够

查看配置文件夹 /etc 中“passwd”和"shadow"的权限,发现“passwd”对普通用户只读,“shadow”只对”root“用户可读写
WebGoat 8.1 靶场 刷题通关教程全攻略 - General_第26张图片

鉴于容器内不具备获取 root 权限的条件,我们退出容器,使用命令

sudo docker cp <Container ID>:/etc/shadow shadow

将容器中的"passwd"文件拷出

WebGoat 8.1 靶场 刷题通关教程全攻略 - General_第27张图片
接下来,我们试图将手动计算出的一个密码对应的哈希值写入“passwd”中,并将其拷回覆盖掉原有”passwd“实现容器中 root 身份的登录

首先,通过如下命令

mkpasswd -m sha-512 password

生成一段密码“password”对应的哈希值

将这段哈希值拷入“passwd”文件中,替换掉"root:"字段后的字母“x”,保存退出

WebGoat 8.1 靶场 刷题通关教程全攻略 - General_第28张图片
输入命令

sudo docker cp passwd <Container ID>:/etc/passwd

将修改后的“passwd”拷回容器,覆盖掉原有文件

重新进入容器打开 bash,查看确认“passwd”文件修改情况

WebGoat 8.1 靶场 刷题通关教程全攻略 - General_第29张图片
现在,输入命令su,输入密码password,即可获取 root 身份

在这里插入图片描述

接下来,进入 /root 目录,可以看到文件“default_secret”,查看其内容即可获取秘密

WebGoat 8.1 靶场 刷题通关教程全攻略 - General_第30张图片

最后,根据给出的命令,在结尾加上密钥即可得到最终的信息

在这里插入图片描述

Writing new lesson

6. Add an assignment to your lesson

本题考查对 Java 和 HTML 源码的基础阅读能力

WebGoat 8.1 靶场 刷题通关教程全攻略 - General_第31张图片

通过阅读 HTML 源码,我们可以看到,任务中输入的两个参数被分别存入“param1”和“param2”两个变量中,并随表单传回后端服务器

WebGoat 8.1 靶场 刷题通关教程全攻略 - General_第32张图片

在后端函数中,我们可以看到,“SampleAttack"类中定义了一个常量“secretValue”,并在其中的函数“completed”中,将"param1"与“secretValue”比较,相同则任务完成,因此,将任务中的“parameter 1”中填入"secr37Value”,"parameter 2"不填或填入任意值即可通过

你可能感兴趣的:(WebGoat,网络攻防学习,网络安全,linux)