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)

WebGoat攻略 for Mac(1)相关推荐

  1. WebGoat攻略 for Mac(3)

    WebGoat攻略 for Mac(1) WebGoat攻略 for Mac(2) WebGoat攻略 for Mac(3) 一.题目攻略 A2.Broken Authentication(认证中断) ...

  2. 咸鱼之王攻略及Mac M1 M2 系统电脑挂机解决无法登录的问题

    App Store内有闲鱼之王的链接,且可以下载但是只支持手机和appleId登录,微信登录无法使用. 无意中找到解决办法,只要让微信能够授权登录就可以了,耗费一天时间终于解决了

  3. Mac系统软件安装攻略

    mac的软件安装攻略 我们mac安装的文件的扩展名为.app,一般默认会隐藏该扩展名,右键单击-显示简介-扩展名,可以看到.一般我们从appstore下载安装的安装文件,会直接默认安装到访达-应用程序 ...

  4. mac 安装win7 攻略

    mac 安装win7 攻略 **这两天将2013的mac air 重装win7 ,网上百度一堆安装攻略,下载不少版本的iso 安装文件,均无法安装,或者进入安装界面后鼠标键盘失效,无法安装,折腾2天成 ...

  5. mac c语言 新手,第1次买Mac必看,新手买Mac全攻略!

    原标题:第1次买Mac必看,新手买Mac全攻略! 近年越来越多人想买Mac,不过用惯Windows又怕不太调节.随着Microsoft为macOS推出MS Office新版,越来越多人改用macOS取 ...

  6. WebGoat通关攻略与详细解析——SQL Injection(intro)篇

    写在前面: 目前WebGoat通关攻略与详细解析处于持续更新中,若大家在阅读的过程中发现什么问题或者有什么建议,都可以在发布在评论区或私信我,我们一起共同探讨! 由于所有通关攻略写在一起导致篇幅太长, ...

  7. 最舒适最强大最全攻略玩法玩转最新win10——买不起mac学好win

    最舒适最强大最全攻略玩法玩转最新win10--买不起mac学好win --来自衡与墨的倾情挖坑 前言 现在程序员在实际进行软件开发时使用的平台应该大部分还是windows吧,我想也是,毕竟那些用lin ...

  8. ubuntu/Mac系统智能卡操作全攻略1--访问PC/SC读卡器

    http://blog.csdn.net/CaesarZou/article/details/7999624 因为PC/SC是Windows的体系,以系统API的层面服务应用.所以一直以来智能卡相关的 ...

  9. WebGoat通关攻略

    目录 前言 一.环境配置 1.Docker配置 2.WebGoat获取 3.WebGoat连接 二.通关攻略(建设中) 1.Introduction 1)WebGoat 2)WebWolf 2.Gen ...

  10. Mac虚拟机安装win7攻略 必须点赞

    2019独角兽企业重金招聘Python工程师标准>>> 不少已经购买mac电脑的用户并不了解这款电脑的操作系统如何使用,经常使用不习惯,很多人会想能不能在mac上再安装一个windo ...

最新文章

  1. spark常用函数比较
  2. 农民斗地主——Binder fuzz安全研究
  3. 丑数 Ugly Number
  4. mysql安全补丁如何处理_3分钟学会mysql数据库的逻辑架构原理
  5. 【定时同步系列2】16QAM调制+OM定时+信号分段处理+误码率曲线之MATLAB仿真(复信号模型)
  6. 七年级计算机教学质量分析,七年级数学期末教学质量分析报告
  7. 创建自己SQL Server Docker映像
  8. 222 Count Complete Tree Nodes
  9. 文本检查点web_reg_find和web_find两个函数的区别
  10. IBM/ORACLE/EMC在银行业的重要性
  11. 常用的分类与预测算法
  12. 曾宪武《物联网通信技术》课后答案(一)
  13. 使用安卓模拟器+Xposed+JustTrustMe+burp suite抓取app的https流量
  14. tiny4412移植U-Boot 2020.07
  15. uva 10098(全排列)
  16. python 曲线拟合 画图+公式
  17. 紫乌鸦服务器维护后多久刷,魔兽世界6.1紫乌鸦刷新点大全 刷新时间
  18. 潘悟云方言计算机,山东方言精组与见晓组声母的分合研究
  19. Mac 下生成keystore以及获得数字签名
  20. 织梦学习 织梦留言板【详解】

热门文章

  1. 【安装windows10 RTX3090 tensorflow的开发环境】
  2. php 判断中文和英文,php如何判断是中文还是英文
  3. 视频转mp3格式转换器怎么使用
  4. 打开图片或者视频显示“文件系统错误-2147416359”
  5. 数据结构学习笔记-常用十大算法
  6. thinkphp5中带参数跳转
  7. Lounge Lizard EP-4 for Mac(电钢琴插件)v4.2.5破解版
  8. OpenStack之Live-migration
  9. 江恩 计算机,在计算机上绘制江恩角度线 (转贴)
  10. 神威太湖之光计算机的知识点,神威太湖之光计算机系统.PDF