WebGoat攻略 for Mac(1)

article/2025/11/5 2:06:47

WebGoat攻略 for Mac(1)

  • 一、环境配置
    • 1.配置Docker
    • 2.配置WebGoat
    • 3.连接WebGoat
  • 二、题目攻略
    • Introduction(介绍)
      • a.WebGoat
      • b.WebWolf
    • General(通用)
      • a.HTTP Basics(HTTP基础)
      • b.HTTP Proxies
        • 配置OWASP ZAP
      • c.Developer Tools(开发人员工具)
      • d.CIA Triad
      • e.Crypto Basics(加密基础)
      • f.Writing new lesson(略)

最近网络对抗原理课程的实验刚好用到WebGoat来学习网络安全知识,顺便记录一下WebGoat的学习攻略,供大家参考。

一、环境配置

作者的电脑为17年的MacBook Pro,现版本为macOS Big Sur(11.2.3)。
但是我建议优先使用Fedora,其次是Linux,最后才是类Unix系统,由于作者较懒,所以直接使用类Unix系统进行实验了。(极其不推荐)

1.配置Docker

终端下载Docker:

brew install --cask --appdir=/Applications docker

2.配置WebGoat

  1. 终端输入:
sudo docker pull webgoat/webgoat-8.0

在这里插入图片描述

  1. 终端输入:
sudo docker pull webgoat/webwolf

在这里插入图片描述

  1. 终端输入:
sudo docker pull webgoat/goatandwolf

在这里插入图片描述

3.连接WebGoat

  1. 终端输入:
sudo docker run -p 8888:8888 -p 8080:8080 -p 9090:9090 webgoat/goatandwolf

在这里插入图片描述

  1. 打开浏览器,进入网址:
http://127.0.0.1:8080/WebGoat

在这里插入图片描述
到达这个界面之后就说明环境配置成功了,第一步目标完成!

While running this program your machine will be extremely vulnerable to attack. You should disconnect from the Internet while using this program. WebGoat’s default configuration binds to localhost to minimize the exposure.

This program is for educational purposes only. If you attempt these techniques without authorization, you are very likely to get caught. If you are caught engaging in unauthorized hacking, most companies will fire you. Claiming that you were doing security research will not work as that is the first thing that all hackers claim.

上面是注册账号时的须知,大概意思就是运行此程序的时候机器容易受到攻击,最好断网使用(减少曝光);其次就是本软件仅面向教育,如果你未经授权使用学习到的黑客技术,被公司解雇,责任自负。

二、题目攻略

Introduction(介绍)

a.WebGoat

WebGoat是一个故意不安全的应用程序,允许像您一样感兴趣的开发人员测试使用常见和流行的开源组件的基于Java的应用程序中常见的漏洞…

b.WebWolf

  1. Introducing WebWolf(介绍 WebWolf)
    WebWolf使用的是端口9090,一般在题目要求使用WebWolf的时候才会使用。需要时打开网址:
http://127.0.0.1:9090/WebWolf

在这里插入图片描述

  1. Uploading files(上传文件)

WebWolf可以上传文件。这些文件将从应用程序外部获得。
例如,如果你想在XXE攻击中引用从xml引用的DTD,你可以使用WebWolf为该DTD提供服务。
在这里插入图片描述
上传文件后,可以通过点击Link获得完整URL。

  1. Your own mailbox(你自己的邮箱)

WebWolf为每个账号提供了一个邮件客户端,其中包含上课期间发送的电子邮件。
在这里插入图片描述
输入自己的邮箱,如(sadasdaf@webgoat.org),然后点击发送。
在这里插入图片描述
获得code为fadsadas,输入这个code即可完成任务。

  1. Landing page(登陆页面)

这意味着您可以使用WebWolf作为收集cookie等的登陆页面,这在您执行XSS课程时很有帮助。
在这里插入图片描述
点击蓝色的Click here to reset your password,将会打开一个页面。
在这里插入图片描述
输入重置密码后,用户将会看到错误的界面(事实上在正常的攻击中,用户看到的是正常的界面,这只是WebGoat的一个机制)。然后攻击者会在WebWolf中收到新密码。
在这里插入图片描述
可以看到新密码是abcdefg,而code是fadsadas,输入code,完成任务。

General(通用)

a.HTTP Basics(HTTP基础)

  1. How HTTP works(HTTP的工作原理)

在这里会给你一个连接下载OWASP ZAP(攻击代理),点连接下载就可以了,因为是从Github里面下载,所以记得挂VPN。
每个客户端请求和服务器响应有三个部分:请求或响应行、头部分和实体主体。

客户端发起交易时:
a. 客户端联系服务器并发送文档请求。GET请求可以具有url参数,这些参数将在Web访问日志中可用。

GET /index.html?param=value HTTP/1.0

b. 接下来,客户端发送可选的头信息,以通知服务器其配置和它将接受的文档格式。

User-Agent: Mozilla/4.06 Accept: image/gif,image/jpeg, /

c. 在POST请求中,用户提供的数据将遵循可选的标头,而不是POST URL中包含的数据的一部分。

  1. Try it !

在下面的输入字段中输入您的姓名,然后按“开始!”提交。服务器将接受请求,反转输入并将其显示给用户,说明处理HTTP请求的基本原理。
在这里插入图片描述
在这里插入图片描述
可以看到输入的名字被反转了。

  1. The Quiz

WebGoat在本课中使用了哪种类型的HTTP命令。POST还是GET。
在这里插入图片描述
打开开发者界面,随便输一些数字,点击Go!,然后可以看得到:
在这里插入图片描述
显然,第一个空填POST;第二个空填10。任务完成。

b.HTTP Proxies

  1. What’s a HTTP Proxy(什么是代理)

代理是将您的http客户端连接到后端资源的一些转发应用程序。
使用ZAP,您可以记录流量,检查流量,修改来自浏览器的请求和响应,并通过检查流量获取ZAP检测到的一系列已知漏洞的报告。
然后介绍了一些配置OWASP ZAP、ZAP使用、Burp重播的流程(后面都有介绍)。

  1. HTTP Proxy Setup

设置ZAP作为本地主机上的代理。

配置OWASP ZAP

  1. 启动ZAP。

在初始设置中选择“No, I do not want to persist this session at this moment in time.”,然后点击开始。

  1. 配置代理端口。

菜单中工具 > 选项… > Local Proxies > 选择一个端口如8090(空闲的) > OK。在这里插入图片描述

  1. 设置浏览器

点击Manual Explore,按照下图进行配置(提前下载好火狐浏览器Firefox):
在这里插入图片描述
点击“启动浏览器”,即可进入这个界面,配置完成。在这里插入图片描述

  1. 在历史面板中筛选请求

可以看到历史面板信息太多:在这里插入图片描述
点击“过滤”前面的小图标,在“URL Inc Regex”中输入:

.*WebGoat.*

在“URL Exc Regex”中输入:

.*lesson.*.mvc

点击应用,然后历史信息中就不会显示内部WebGoat的请求了。
在这里插入图片描述

  1. 配置断点过滤器

点击工具栏中“橙色的叉号”,安装下图进行配置(当请求头包含POST时):
在这里插入图片描述
拦截的时候必须是使用ZAP打开的浏览器如FireFox。

  1. 拦截与修改请求

当您的请求被拦截时,请按照以下方式修改。
在这里插入图片描述
点击“Submit”,会弹出以下页面:在这里插入图片描述
查看ZAP捕捉到的断点:
在这里插入图片描述
按照要求进行修改:
在这里插入图片描述
点击继续按钮,发现任务完成。
在这里插入图片描述

  1. 使用ZAP中的“编辑和重新发送”功能

从ZAP内部重新发送同一请求,不必切换到ZAP启用拦截按钮。
点击左侧的某个文件,右击文件选择“重发送”即可。如果您通过以这种方式提出请求解决了作业,WebGoat将自动将课程标记为已解决。(按照课程介绍导入OWASP ZAP根证书就可以了)

  1. ZAP为https代理

OWASP ZAP代理也可以配置为代理https请求。

  1. 手动设置代理

略过,后面有需要再回来看吧。

  1. Burp

另一个常用的代理,感兴趣的同学可以自己下载试试,本节有详细步骤。

c.Developer Tools(开发人员工具)

  1. “控制台”

通过控制台,你还可以运行自己的JavaScript代码行。如:console.log(“Hello WebGoat!”); 。

  1. 使用控制台

需要在控制台输入一个函数,得到返回的Code。
在这里插入图片描述
按照要求在控制台输入响应函数后,得到一个随机数:
在这里插入图片描述
输入随机数-367549795,完成任务。
在这里插入图片描述

  1. 使用“网络”选项卡

单击“Go!”,这将生成一个HTTP请求。尝试查找特定的HTTP请求。请求应该包含一个字段:“networkNum”,将随后显示的数字复制到下面的输入字段中,然后单击check按钮。
在这里插入图片描述
点击“Go!”,收到一个network:
在这里插入图片描述
打开之后,找到networdNum的数值。
在这里插入图片描述
将随机数输入,任务完成。
在这里插入图片描述

d.CIA Triad

  1. 机密性

确保机密性方法:
数据加密,身份验证(密码、双重认证、生物识别验证),减少信息出现的地方/次数,物理安全测量等。

  1. 完整性

确保完整性方法:
备份,冗余,哈希函数检查完整性,功能良好的身份验证方法和访问控制等。

  1. 可用性

确保可用性方法:
入侵检测系统,网络流量控制,防火墙,硬件维护等。

  1. 测试题目

答案:
在这里插入图片描述

e.Crypto Basics(加密基础)

  1. Base64编码

Web应用程序有时会使用基本身份验证,这使用Base64编码在这里插入图片描述
可以使用终端进行base64解密,代码如下(只需要把中间的base64编码换掉就可以):

在这里插入图片描述

echo c2FkYXNkYWY6YWRtaW4= | base64 -d
  1. 其他编码

HTML编码、UUEn编码、XOR编码。
下面是XOR编码的解密实战:
在这里插入图片描述
使用{xor}解码工具进行解码:
在这里插入图片描述
输入密码,任务完成。
在这里插入图片描述

  1. 哈希

任务是解密哈希码:
在这里插入图片描述
使用MD5在线解码工具进行解码:
在这里插入图片描述
在这里插入图片描述
输入结果,任务完成。
在这里插入图片描述

  1. 对称加密与非对称加密(略)
  2. 签名

RAW签名、CMS签名、SOAP签名、电子邮件签名、PDF或Word或其他签名。(网页中均有详细介绍)
任务是
将RSA密钥的模量确定为十六进制字符串,并使用该密钥计算该十六进制字符串签名。
在这里插入图片描述
首先将私钥复制到一个private.txt文本中,如图所示:
在这里插入图片描述
然后在终端中输入:

openssl rsa -in ./private.txt -modulus

在这里插入图片描述
然后对模进行加密操作,终端中输入:

echo -n "95A4C235BBE7736C85A97E76E59158E76F6C57734C864D7FCD68F31A19A30454207BAEC7499406AA9B60B9487FA73523FC8878D63310B54D4D9078DC253406F9F195E89D5D6AEB250AFC80DAF96F6FCDF1E7376A860C82F2A09AC94613C6DA38F76FA09E45C7323C00A9FC1A3E5FC5C00D6FB771A588A1F1B10ED9B30B38C44E60A381A6BDD547BFD9A27067033BE1FBF21FD659F6C90C9E2F0B53DBE8BD0554096D1E80A58DB7A6B1EFD67DD0654B8B049EEA7AA99CF5E2D32B50DE15920D63FF0CE12F207BC79B0F74B2156BED40D9504D489B5C289CCA9C187F44E6AA459AD82D116BB7C79E5A36A58711C118B313E21D673E011FD795B40E33D35854B7C1" | openssl dgst -sign ./private.txt -sha256 -out ./dgst.txt
base64 ./dgst.txt > result

然后就会生成一个result的文件,文件里面就是最终的签名了:
在这里插入图片描述
任务完成。
在这里插入图片描述

  1. 基于文件的密钥存储(略)
  2. Java证书

任务检索意外留在码头容器映像中的密码,可以使用容器内的openssl命令。

在这里插入图片描述
终端输入:

sudo docker run -d webgoat/assignments:findthesecret

在这里插入图片描述
继续输入:

docker ps

在这里插入图片描述
然后输入:(中间的1e35e208f050换成自己的,就是上一步结果中的“CONTAINER ID”)

docker exec -ti 1e35e208f050 /bin/bash

在这里插入图片描述
连接到镜像后,发现root文件夹打不开,直接“su”需要密码。首先退出镜像:

exit

然后我们把镜像中的文件拷到本地(第一个“./”是目标地址,自己设置,9a50123bb793是“CONTAINER ID”):

docker container cp 9a50123bb793:./ ./

然后在本地找到root文件夹,进去之后发现default_secret文件(这个就是存储密码的文件),打开default_secret可以看到密码:在这里插入图片描述
然后在终端输入:

echo "U2FsdGVkX199jgh5oANElFdtCxIEvdEvciLi+v+5loE+VCuy6Ii0b+5byb5DXp32RPmT02Ek1pf55ctQN+DHbwCPiVRfFQamDmbHBUpD7as=" | openssl enc -aes-256-cbc -d -a -pass pass:ThisIsMySecretPassw0rdF0rY0u

在这里插入图片描述
将得到的“Leaving passwords in docker images is not so secure”和“default_secret”输入,任务完成。
在这里插入图片描述

f.Writing new lesson(略)

WebGoat攻略 for Mac(2)
WebGoat攻略 for Mac(3)
WebGoat攻略 for Mac(4)
WebGoat攻略 for Mac(5)


http://chatgpt.dhexx.cn/article/hhvxiXTU.shtml

相关文章

代码审计之WEBGOAT 反序列化

反序列化这关在前端页面可以看到是提交token到后端,先看一下接口名 可以看到接口名为InsecureDeserialization/task,那就后端全局搜索InsecureDeserialization/task,最终定位到InsecureDeserializationTask.java 源码如下: packa…

kali搭建webgoat靶场

下载webgoat-server-8.0.0.M26.jar与webwolf-server-8.0.0.M26.jar,并保存至kali的documents处,并在此打开终端(不然无法打开) 打开webgoat-server-8.0.0.M26.jar 浏览器访问127.0.0.1:8080/WebGoat/login.html 进行注册且登录 成…

基于 WebGoat 平台的 SQL 注入攻击

基于 WebGoat 平台的 SQL 注入攻击 扩展功能参考: https://blog.csdn.net/HZC0217/article/details/126790211 使用实例参考: https://www.cnblogs.com/hndreamer/p/16635984.html 目录 1、什么是 webgoat? 2、jar 下载 3、环境搭建 4、运行 webgoat 5、在浏览器中登录 …

owaspbwa之WebGoat

简介 下载:https://sourceforge.net/projects/owaspbwa/files/ GitHub: https://github.com/chuckfw/owaspbwa/wiki/UserGuide 0x001 侦查 PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 5.3p1 Debian 3ubuntu4 (Ubuntu Linux; protoc…

WebGoat之JWT部分攻略

环境搭建 使用docker容器搭建webgoat环境 什么是JWT Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准.该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(单点登录SSO:在多个应用系统中&…

Webgoat靶场搭建

环境 jdk16 安装 文件源码看评论区哈。 下载过后是这个jdk-16.0.2.7z文件,这是个JDK16的包,进入bin目录下,可以看到靶场文件, 启动网站 打开一个cmd窗口执行启动网站命令 java --add-opens java.base/sun.nio.chALL-UNNAMED --add-op…

WebGoat通关教程

这里我们用docker镜像一键搭建即可 用docker命令开启webgoat docker run -d -p 8081:8080 -p 9090:9090 -e TZEurope/Amsterdam webgoat/goatandwolf 打开192.168.109.131:8081/WebGoat和192.168.109.131:9090/WebWolf能打开即可 192.168.109.131是本地IP 直接注册一个账号&…

在Ubuntu环境下使用docker配置webgoat环境

1.安装Docker环境 sudo apt install docker.io 2.配置Docker加速 打开配置文件 vim /etc/docker/daemon.json添加mirrors信息 {"registry-mirrors":["https://registry.docker-cn.com","http://hub-mirror.c.163.com"]}3.重启docker system…

WebGoat General Crypto Basics

目录 第2页 第3页 第4页 第6页 第2页 这一页是讲base64编码和Basic Authentication的 简单来说Basic Authentication中使用了base64编码,以本页的题目举例,如果有个HTTP头长这样 Authorization: Basic ZmFuY3llbGU6c2VjcmV0 那这个网站就是用了Basi…

docker安装webgoat

docker安装webgoat 一般来说 无需docker,在 https://github.com/WebGoat/WebGoat/releases中,下载最新的v8.2.2.jar,然后java -jar webgoat-server-8.2.2.jar然后反问http://127.0.0.1/WebGoat即可 但是,由于本人windows主机(java10.0.2)和ka…

WebGoat-8.2.2版靶机学习总结

摘要:本文档介绍了WebGoat靶机平台在Windows10系统下的使用。其操作过程均在一台主机上完成。该平台涉及的训练项目有http代理、数据库注入、身份校验缺陷、XSS、访问控制缺陷、通信拦截、序列化问题、CSRF、问题组件等内容,帮助学习者学习网络攻防基础&…

WebGoat安装

WebGoat是运行在Java虚拟机的WEB漏洞实验靶场,可以提供包括跨站点脚本攻击(XSS),访问控制,线程安全,操作隐藏字段,操纵参数,弱会话cookie,SQL盲注,数字型SQL注入,字符串型SQL注入,web服务、Open Authentication失效,危险的HTML注释等多个漏洞练习. 使用WebGoat的方式有很多,我…

WebGoat v8.0打靶笔记

目录 一、环境的配置 (1)安装docker (2)WebGoat获取 (3)burp suite的配置 二、Introduction 三、General (1)HTTP Basics (2)HTTP Proxies &#…

安装WebGoat步骤

安装Webgoat步骤 安装目的:了解并深入目前安全行业的OWASP ten 10漏洞 何为Webgoat? Webgoat内置OWASP十大漏洞 安装过程 下载webgoat架包 地址 创建一个文件夹,将上面框出的架包复制到文件夹里 检测JAVA环境 使用之前得先把Java的版本升级一下…

WebGoat部分题目

一、文件上传漏洞 1、跨目录脚本执行 上传的脚本文件在网站存放上传文件的目录下被限制执行,于是我们把上传的脚本文件放到根目录去执行。 靶场情况: 如上图所示,假设的根目录为C:\Users\Administrator/.webgoat-2023.4/PathTraversal &am…

linux部署webgoat

文章目录 程序包准备上传部署 程序包准备 github上下载程序包,如果太慢可以点击 下载webgoat-server-8.2.2 .jar 上传部署 将包上传到服务器上,需要说明该包依赖java环境且对java版本要求较高,我们这里是用java17进行部署,需要…

WebGoat靶场搭建及通关记录(一)

文章目录 前言一、搭建靶场二、通关攻略1.GeneralHTTP BasicsHTTP Proxies 2.Injection FlawsSQL Injection (advanced)SQL InjectionSQL Injection (mitigation)XXE 3.Authentication FlawsAuthentication BypassesJWT tokens 总结 前言 搭建WebGoat靶场,以前没玩…

WebGoat安装配置

WebGoat安装配置 WebGoat是由OWASP维护的故意不安全的Web应用程序,旨在教授Web应用程序安全性课程。该程序演示了常见的服务器端应用程序缺陷。 这些练习旨在供人们学习应用程序安全性和渗透测试技术。 要从源码安装并运行WebGoat需要运用到许多工具,并…

webgoat

Webgoat挑战刷关: 第一关: 提示:Admin管理员丢失密码 一开始想到爆破,后面发现太蠢了有点。。。万一人家的密码设置的稍微有点复杂,那我这老年机还不跑废了啊。 然后我想着用sql注入的万能密码: 发现也给…

WebGoat通关攻略

目录 前言一、环境配置1.Docker配置2.WebGoat获取3.WebGoat连接 二、通关攻略(建设中)1.Introduction1)WebGoat2)WebWolf 2.General1)HTTP Basics2)HTTP Proxies3)Developer Tools4)CIA Triad5)Crypto Basics 3.Injection1)SQL Injection(intro)2)SQL In…