WebGoat General Crypto Basics

article/2025/11/5 3:18:09

目录

第2页

第3页

第4页

第6页


第2页

这一页是讲base64编码和Basic Authentication的

 

简单来说Basic Authentication中使用了base64编码,以本页的题目举例,如果有个HTTP头长这样

Authorization: Basic ZmFuY3llbGU6c2VjcmV0

那这个网站就是用了Basic Authentication,并且ZmFuY3llbGU6c2VjcmV0就是base64编码的用户名和密码,格式是 用户名:密码

网上随便找个base64解码器解码,或者用burpsuite的decoder模块也可以。

比如下图用的是burpsuite的decoder模块,在上面的框框中输入base64编码,右边点击decode as,然后选base64,就解码啦

结果是 fancyele:secret

根据之前说的格式,用户名是fancyele,密码是secret

过关啦

第3页

这一页简单介绍了其他几种编码,包括XOR

其实我有点疑惑为啥XOR算编码不算加密,毕竟人家也是要密钥的。。

而且题目可难住我了。。无语。。只告诉了编码后的密码是 {xor}Oz4rPj0+LDovPiwsKDAtOw==,也不说密钥是什么,在网上找XOR解码器都是要输入密钥的,没有密钥怎么玩啊

然后我灵机一动,看到上面介绍的 IBM WebSphere Application Server 默认用xor编码保存密码,和题目一联系,似乎可以直接搜索“WebSphere解码”,“WebSphere password”之类的,倒是能找到一个,但是不好使。。

万念俱灰之下,我只能直接搜索WebGoat Crypto Basics。。中文的没搜到,但是好歹搜到个日文的。。感谢伟大的google翻译

这篇日文的通关说明(https://guri6cerin.hatenablog.com/entry/2020/09/18/WebGoat5%3A_Crypto_Basics)里面给了一个网站(http://www.poweredbywebsphere.com/decoder.html),确实可以解码WebSphere password

第4页

本页讲的是散列算法,本页的两题都用下面这个在线破解工具进行破解,破解的时候类型选自动就可以

https://cmd5.com/

注意,应该是每次登录的散列都不同,中间要是退出了webgoat,估计要再重新破解一下。

第一题在上述网页破解一下:

第二题在上述网页破解一下:

过关啦~

第6页

我的天,这页的题目搞得我累死了,终于搞出来了。。

而且我刚发现题目名称下面有个show hints的按钮,可以给一些关于答题的提示

这页第一个框要填公钥的模,第二个框要填对模的签名。

但其实公钥和私钥的模是一样的,所以这页其实并不需要先得到公钥,直接用私钥求模,再用私钥把模签名就好了。

先来求模:

用下面这个openssl命令,openssl工具kali linux上是预安装的,直接用就好。

$ openssl rsa -in test.key -modulus

test.key是一个文件,里面是本页题目中给出的私钥,内容如下:

-----BEGIN PRIVATE KEY----- MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCrwtG3vMddDbYYI36EETM21NMH1dUTLJGISfxiOsfU57v7DNqtKsTjvjfJW+LljHPGKGDkKaBVtPDDapSXZ5Fp64+wpCJVEO6dncwt23SISWclmRba/R8sgEACSXfa6OFdzgdcPqrCaeBnAejgKnIKI5QhP97wpadXgtclkNywcPR6qf7bsITtrTTHYjc1U5MIWveF0n4oAVqO14LMyFjayml66xw/9mu3SoHo5uyrbx+3Mla95AoGjRRneGVMLPB+9grBkkjOZN1MuyHi4dWmohd7RxoRYc7E/BTS3pxHKIuZfayIBcmWR+Hddh/vh3eyXE53YKHeTIqp5OswTy83AgMBAAECggEAB3Qg3bRXgnZB3LJNnzWP32VE8yYYZQieGCf9x9V9LoQP6EkahEFC4g8zJI3UPtnlfEfsTHpx9sYvXIuXfyqDaPFL/wJgawidEkHyxlqrp+5nh34pO7+YRroaDP9bMCjC/usd7qbZii5GCrJOhMvSvxXkK70104Ocy3NmGr86lH2AI9mmCdT9u9PzpXaPo2WR3LbYgpCzCAvtT5jN/J3dQb/6ok2SZNK2sFJhdvcFcZcOf6XQV9Jdher2sQLPINMn/Zt+djjuDrjjnj1l+3Ix6vrwu6DIaVoGfmK/9hfCctbxwreNRuWL4QkPalV48RILUtvGdAOf1GgEK9/ZQwZjIQKBgQDd++UMRcqPy2LJz9dNikp8v0mQTUOe/gogdqUuJhH+YLZbAQPGHni0uw6Qevd/wi2XHBkXiIfuWjO2CPNKosfVH2SCUWgxXJcZEmVm03aAFE+8ujMr3rB9oCNAi6OvJswOfEDxvVrludD3UpH9Yq2E4wbZM8IMk/DXNtaSEUKy/QKBgQDGFMB0+QBH34dQjjUex7szmryuBmbDAyxkn79UhfXqLI4UwHTGnOQDw5vq08mVLrOp2QALNo5lGWb+9ONtJcTO+P+0NePa/IUvPjQ5uVmRmF2KxUMYIekjvWYeu+ndaPeecywq6Kh62jg5zzjQOn1g5+YVJehopAas+m92BvTjQwKBgQC5tf8NoWWxnwnqpIMPT965Np8opjsoTIfUWO4gCaGMGwT0ZYjuupdpPAUXQojEzYKupMcpNQPjmHsik6JWkpBz8Gt5yvlMMpYGV6mVuNuuk0+SKISe8xLcRpi3axtpcR/ODo2WsD/XaPk1sFKKlX9taTFVjUOOmkYnBq3ETcRrUQKBgQCxqVk5UUCkNmPqp7ITaneIgIgs2kb/MHB3zCRSzlhT8iR5jmju3zdP/PlytQSADsRMWfrFE+jB2vfbQ5BcjFyqewD2BMPa3VUjm3pCL/GbOfrkhat5EKlISg83D7phwU0fTBPYZJcAoYt+plNByMQ9z6E5ZKfAeyYVrgWc6f5pewKBgQCk9TQJLErzyC0N+4aoShHLjIn6RZzlzKY9XumAuVsqLhsb3MmzQtiz6KgBxIaNrN0mdSz0jxuWxgNI/tLuRaFPZhyY+UIgTeZ0j36D3PRhb40yZ1Zymj8lICvAjcw1DcqsG8CHjy9nJ2sGgxTq1hl6BFaPkzS2dG5E3ZIW81Vdng== -----END PRIVATE KEY-----

得到的结果如下:

Modulus=ABC2D1B7BCC75D0DB618237E84113336D4D307D5D5132C918849FC623AC7D4E7BBFB0CDAAD2AC4E3BE37C95BE2E58C73C62860E429A055B4F0C36A9497679169EB8FB0A4225510EE9D9DCC2DDB74884967259916DAFD1F2C8040024977DAE8E15DCE075C3EAAC269E06701E8E02A720A2394213FDEF0A5A75782D72590DCB070F47AA9FEDBB084EDAD34C76237355393085AF785D27E28015A8ED782CCC858DACA697AEB1C3FF66BB74A81E8E6ECAB6F1FB73256BDE40A068D146778654C2CF07EF60AC19248CE64DD4CBB21E2E1D5A6A2177B471A1161CEC4FC14D2DE9C47288B997DAC8805C99647E1DD761FEF8777B25C4E7760A1DE4C8AA9E4EB304F2F37
writing RSA key
-----BEGIN RSA PRIVATE KEY-----
MIIEpQIBAAKCAQEAq8LRt7zHXQ22GCN+hBEzNtTTB9XVEyyRiEn8YjrH1Oe7+wza
rSrE4743yVvi5Yxzxihg5CmgVbTww2qUl2eRaeuPsKQiVRDunZ3MLdt0iElnJZkW
2v0fLIBAAkl32ujhXc4HXD6qwmngZwHo4CpyCiOUIT/e8KWnV4LXJZDcsHD0eqn+
27CE7a00x2I3NVOTCFr3hdJ+KAFajteCzMhY2sppeuscP/Zrt0qB6Obsq28ftzJW
veQKBo0UZ3hlTCzwfvYKwZJIzmTdTLsh4uHVpqIXe0caEWHOxPwU0t6cRyiLmX2s
iAXJlkfh3XYf74d3slxOd2Ch3kyKqeTrME8vNwIDAQABAoIBAAd0IN20V4J2Qdyy
TZ81j99lRPMmGGUInhgn/cfVfS6ED+hJGoRBQuIPMySN1D7Z5XxH7Ex6cfbGL1yL
l38qg2jxS/8CYGsInRJB8sZaq6fuZ4d+KTu/mEa6Ggz/WzAowv7rHe6m2YouRgqy
ToTL0r8V5Cu9NdODnMtzZhq/OpR9gCPZpgnU/bvT86V2j6Nlkdy22IKQswgL7U+Y
zfyd3UG/+qJNkmTStrBSYXb3BXGXDn+l0FfSXYXq9rECzyDTJ/2bfnY47g644549
ZftyMer68LugyGlaBn5iv/YXwnLW8cK3jUbli+EJD2pVePESC1LbxnQDn9RoBCvf
2UMGYyECgYEA3fvlDEXKj8tiyc/XTYpKfL9JkE1Dnv4KIHalLiYR/mC2WwEDxh54
tLsOkHr3f8ItlxwZF4iH7loztgjzSqLH1R9kglFoMVyXGRJlZtN2gBRPvLozK96w
faAjQIujrybMDnxA8b1a5bnQ91KR/WKthOMG2TPCDJPw1zbWkhFCsv0CgYEAxhTA
dPkAR9+HUI41Hse7M5q8rgZmwwMsZJ+/VIX16iyOFMB0xpzkA8Ob6tPJlS6zqdkA
CzaOZRlm/vTjbSXEzvj/tDXj2vyFLz40OblZkZhdisVDGCHpI71mHrvp3Wj3nnMs
Kuioeto4Oc840Dp9YOfmFSXoaKQGrPpvdgb040MCgYEAubX/DaFlsZ8J6qSDD0/e
uTafKKY7KEyH1FjuIAmhjBsE9GWI7rqXaTwFF0KIxM2CrqTHKTUD45h7IpOiVpKQ
c/Brecr5TDKWBleplbjbrpNPkiiEnvMS3EaYt2sbaXEfzg6NlrA/12j5NbBSipV/
bWkxVY1DjppGJwatxE3Ea1ECgYEAsalZOVFApDZj6qeyE2p3iICILNpG/zBwd8wk
Us5YU/IkeY5o7t83T/z5crUEgA7ETFn6xRPowdr320OQXIxcqnsA9gTD2t1VI5t6
Qi/xmzn65IWreRCpSEoPNw+6YcFNH0wT2GSXAKGLfqZTQcjEPc+hOWSnwHsmFa4F
nOn+aXsCgYEApPU0CSxK88gtDfuGqEoRy4yJ+kWc5cymPV7pgLlbKi4bG9zJs0LY
s+ioAcSGjazdJnUs9I8blsYDSP7S7kWhT2YcmPlCIE3mdI9+g9z0YW+NMmdWcpo/
JSArwI3MNQ3KrBvAh48vZydrBoMU6tYZegRWj5M0tnRuRN2SFvNVXZ4=
-----END RSA PRIVATE KEY-----

模就是“Modulus=”之后,“writing RSA key”之前的那串十六进制字符。把这串字符复制粘贴到第一个框。

下面来取得模的签名:

用下面这个命令,其中echo的-n参数表示不输出末尾的换行符,双引号中的内容是上一步中得到的模。

$ echo -n "ABC2D1B7BCC75D0DB618237E84113336D4D307D5D5132C918849FC623AC7D4E7BBFB0CDAAD2AC4E3BE37C95BE2E58C73C62860E429A055B4F0C36A9497679169EB8FB0A4225510EE9D9DCC2DDB74884967259916DAFD1F2C8040024977DAE8E15DCE075C3EAAC269E06701E8E02A720A2394213FDEF0A5A75782D72590DCB070F47AA9FEDBB084EDAD34C76237355393085AF785D27E28015A8ED782CCC858DACA697AEB1C3FF66BB74A81E8E6ECAB6F1FB73256BDE40A068D146778654C2CF07EF60AC19248CE64DD4CBB21E2E1D5A6A2177B471A1161CEC4FC14D2DE9C47288B997DAC8805C99647E1DD761FEF8777B25C4E7760A1DE4C8AA9E4EB304F2F37" | openssl dgst -sign test.key -sha256 | base64

得到的结果如下:

TL9DuXgho/8yL2l7iyb2Sk0td25Ai5B9+074ABVaHz3uByb+ZKdbujjUmRxLJ+Lvb6CztlNXsWQc
Z+mF1S/3/Uv26VU1/NqFE7LISOFtt1AEnqswuX6k3YTJClHi07cFTlybhYlTAJdrJY90ewwCaAyN
IiD9Sh70XG4zV4yW+aCJFTMPFeMJEkMuS6/u154YLPEEBVNdrry3c9UIlLfpdaKhEFkr6gSKM6P/
kfVMo1KtTpDH3O8MVaPnJ2mrJUFLJt02RoOrR+tRP9OsDY1cku4OUQtAnDjVytCwDk42PePb4cb/
0wuWI6sMmFE8JP8hLRlnw1bn2R9CpiWyClj4Ig==

然后我直接把这段结果贴到第二个框里面,提交之后回显提示签名与模不匹配,我就在这边卡了好久。。。

直到我想到一个办法,通过chrome的开发者工具看报错信息:

这个叫verify的http报文的response中提示base64字符(20\n\t)不合法,我一想,哎呀,估计是因为换行了。。。

再看header,请求正文的form data中signature果然由很多空格

所以后来我把上述base64编码的签名结果先复制到文本编辑器中,去掉换行,然后再粘贴到第二个框框,提交,就通过了。

注意,这题也是每次登录题目中的私钥都不一样,一定要自己走一遍。

 

还剩个第8页,需要在安装环境上启动docker容器,并在容器里面操作。由于我目前是用的在线靶机,所以暂时玩不了了,这题好像还挺有意思,等之后自己安装好webgoat再补吧。。

 

 


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

相关文章

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…

webgoat全关教程手册

Webgoat&Webwolf owaspbwa里面的两个服务 搭建 先要安装jdk、Webgoat和Webwolf Webgoat和Webwolf jdk1.8不支持了,需要安装jdk11 去git上下载Webgoat和Webwolf https://github.com/WebGoat/WebGoat/releases/tag/v8.0.0.M26 去oracle官网下载JDK https:/…

Webgoat学习笔记

0x00 安装 WebGoat的版本区别 WebGoat是一个渗透破解的习题教程,分为简单版和开发版,GitHub地址. 简单版安装 简单版是个JAVA的Jar包,只需要有Java环境,然后在命令行里执行 1 2 3 <code> #!bash java -jar webgoat-container-7.0.1-war- exec .jar < /code > 然…

6.4 Web安全漏洞学习平台:WebGoat的使用

目录 一、预备知识 1、WebGoat介绍 2、JDK 二、实验环境 三、实验步骤 1、JDK安装 2、JDK环境配置 3、WebGoat下载 6、以字符串型SQL注入实验为例进行简单的讲解 一、预备知识 1、WebGoat介绍 WebGoat是一个用来演示Web浏览器中典型安全漏洞的应用程序&#xff0c;其…

【详解】webgoat Web渗透测试平台Injection单元 攻略

目录 一、什么是webgoat&#xff1f; 二、Injection 2.1 SQL Injection (intro) 2.1.1 查询Bob的岗位 2.1.2 更改Tobi的部门 2.1.3 增加一个phone部门 2.1.4 授权 2.1.5 Try It! String SQL injection 2.1.6 查询所有员工的信息 2.1.7 修改员工的薪水 2.1.8 删库跑路 …

【2022】WebGoat的安装与测试

WebGoat的安装 Welcome Here&#xff01; 谈一谈有关WebGoat的搭建 1.WebGoat环境搭建 &#xff08;1&#xff09;下载安装webscarab 首先我们先查看自己是否有可以运行.jar文件的jdk(jdk1.8)&#xff0c;可在cmd.exe中输入java -version&#xff0c;接着去sourceforge下载…

WebGoat 8.1 靶场 刷题通关教程全攻略 - (A1) Injection

WebGoat 8.1 靶场 刷题通关教程全攻略 - A1 Injection (A1) InjectionSQL Injection (intro)2. It is your turn!3. It is your turn!4. Data Definition Language (DDL)5. Data Control Language (DCL)9. Try It! String SQL injection10. Try It! Numeric SQL injection11. I…

eclipse配置Android环境

eclipse 配置Android 环境 1. 配置jdk环境变量&#xff08;若已配置默认忽略&#xff09;2.下载安装Android SDK3.安装ADT插件4.配置AVD驱动5.下面创建一个新项目&#xff0c;测试一下是否安装成功6.导入一个已有的安卓项目7. 问题解决 1. 配置jdk环境变量&#xff08;若已配置…

eclipse配置tomcat详解(图文版)

eclipse配置tomcat详解&#xff08;图文版&#xff09; 目的&#xff1a;学会如何使用eclipse工具开发Servlet首先得配置tomcat。 eclipse不仅会自动编译Servlet&#xff0c;还会自动创建web.xml文件信息&#xff0c;完成Servlet虚拟路径的映射 文章目录 eclipse配置tomcat详解…

Eclipse配置SVN教程

下载svn插件 链接&#xff1a;https://pan.baidu.com/s/1BeGikwxhv21abBA5Hhy8zA 提取码&#xff1a;6666 D盘创建SVN文件夹 打开svn插件 复制如图两个文件夹到svn目录下 创建svn.link并配置 位置在你安装Eclipse/eclipse/dropins 创建 svk.link 删除 org.eclipse.update文件…