WebGoat搭建和Yakit学习

环境搭建

jdk版本:openjdk version "17.0.5“

WebGoat版本:webgoat-server-8.1.0.jar

环境不同有很大可能不能搭建成功

运行命令:java -jar webgoat-server-8.1.0.jar --server.port=8888 --server.address=192.168.142.131 

搭建完成后浏览器访问

 完成注册后就可以开始使用

JWT

JWT详解

jwt即(json,web,token),因为配置不当很容易造成越权问题

JWT(JSON Web Token)由三部分组成:头部(Header)、载荷(Payload)、签名 (Signature)。

头部(Header):头部通常由两部分组成,算法类型和令牌类型。 算法类型:指定用于生成签名的算法,例如 HMAC、RSA 或者 ECDSA。 令牌类型:指定令牌的类型,常见的是 JWT。 头部使用 Base64Url 编码表示,并作为整个 JWT 的第一部分。头部的一个示例: { "alg": "HS256",none "typ": "JWT" }

载荷(Payload):载荷存储了有关用户或实体的声明和其他有关信息。 声明:如用户 ID、角色、权限等信息。 注册声明:包含一些标准的声明(比如发行人、过期时间等)和一些自定义的 声明。 载荷也使用 Base64Url 编码表示,并作为整个 JWT 的第二部分。载荷的一个示例: { "sub": "1234567890", "name": "John Doe", "iat": 1516239022 }

签名(Signature):签名是对头部和载荷进行签名的结果,用于验证 JWT 的完整 性和真实性。 签名生成方式:将头部和载荷进行 Base64Url 编码后拼接在一起,然后使 用指定的加密算法(如 HMAC、RSA)进行签名,将生成的签名添加到 JWT 中

JWT signing

这题的解题条件是重置投票,可是提示我们不是admin

抓包,这里我用了Yakit,bp其实也可以

将数据包发送到fuzz模块

上面的功能试了一下不太行,这里提供一个免费JWT解析网站  jwt.io

如图,这里jwt的格式是这样的,要修改一下 ,修改 payload 数据,admin 修改为 true,将加密方式修改为 none,因为数据是通过base64加密的,这里提供在线加密网站 Base64加密、解密-BeJSON.com

要注意,不要复制=号

如图

将payload复制到抓取的数据包替换即可

发送请求,结果又失败了,看了一下是忘记删除第三处的加密算法了,将点后面的删掉即可,不要把点也删了,成功通关

Refreshing a token

这题要让tom给我们付钱,点击here看到日志信息

点击购买,抓取数据包,发到fuzz模块

先把日志的token字段复制出来,很明显是jwt格式数据,中间两个点,拿去解密

eyJhbGciOiJIUzUxMiJ9.eyJpYXQiOjE1MjYxMzE0MTEsImV4cCI6MTUyNjIxNzgxMSwiYWRtaW4iOiJmYWxzZSIsInVzZXIiOiJUb20ifQ.DCoaq9zQkyDH25EcVWKcdbyVfUL4c9D4jRvsqOqvi9iAd4QuqmKcchfbU8FNzeBNF9tLeFXHZLU4yRkq-bjm7Q

注意到有一个exp(expire),即过期时间

 鼠标悬在数字上,这个网站提示我们这个18年就过期了

直接修改时间,这个时间其实就是离某个时间过了多少秒

把payload复制到base64加密,剩下的步骤和前面没什么区别

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/111729.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电脑网速慢怎么解决?推荐这3个方法

在数字化时代,快速的互联网连接对于工作和娱乐都至关重要。然而,有时候我们可能会遇到电脑网速慢的问题,这会影响我们的效率和体验。可是电脑网速慢怎么解决呢?本文将介绍解决电脑网速慢的3个方法,帮助你提升网络连接的…

面经pc端项目

创建项目 安装脚手架-----创建项目------选择自定义 sass基础语法 https://www.sass.hk/ sass语法有两个:sass(旧) scss(新) 1.scss语法 和less语法类似,支持嵌套,支持变量… scss: $变量名 less: @变量名 $color:orange; .box{width: 400px;height: 400px;borde…

如何使用反 CSRF 令牌保护您的网站和 Web 应用程序

防止跨站点请求伪造攻击 (CSRF/XSRF)的最常见方法是使用反 CSRF 令牌,该令牌只是一个唯一值集,然后由 Web 应用程序需要。CSRF 是一种客户端攻击,可用于将用户重定向到恶意网站、窃取敏感信息或在用户会话中执行其他操作。幸运的是&#xff0…

python萌新爬虫学习笔记【建议收藏】

文章目录 1. 如何何请求解析url2. 如何获取标签里面的文本3. 如何解析JSON格式4. 如何添加常用的header5. 如何合并两个div6. 如何删除html dom的部分结构7. 如何一次性获取所有div标签里的文本8. python爬虫如何改变响应文本字符集编码9. 如何进行字符集转码11. response.text…

多输入多输出 | MATLAB实现PSO-LSSVM粒子群优化最小二乘支持向量机多输入多输出

多输入多输出 | MATLAB实现PSO-LSSVM粒子群优化最小二乘支持向量机多输入多输出 目录 多输入多输出 | MATLAB实现PSO-LSSVM粒子群优化最小二乘支持向量机多输入多输出预测效果基本介绍程序设计往期精彩参考资料 预测效果 基本介绍 MATLAB实现PSO-LSSVM粒子群优化最小二乘支持向…

华为云云服务器云耀L实例评测 | 智能不卡顿:如何实现流畅的业务运行

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

flink的几种常见的执行模式

背景 在运行flink时,我们经常会有几种不同的执行模式,比如在IDE中启动时,通过提交到YARN上,还有通过Kebernates启动时,本文就来记录一下这几种模式 flink的几种执行模式 flink嵌入式模式: 这是一种我们在…

黑马JVM总结(十四)

(1)分代回收_1 Java虚拟机都是结合前面几种算法,让他们协同工作,具体实现是虚拟机里面一个叫做分代的垃圾回收机制,把我们堆内存大的区域划分为两块新生代、老年代 新生代有划分为伊甸园、幸存区Form、幸存区To 为什…

迅为RK3399开发板创建android工程

打开 AndroidStudio 软件,点击“Start a new Android Studio project”新建一个 Native C工程(因为我们要调用本地库,所以要创建这个 C实例工程),点击“Next” 2.填写创建信息,如下图所示。最后点击“finis…

计算机网络中的应用层和传输层(http/tcp)

目录 1、协议的通俗理解 1.1 理解协议 2.应用层 2.1 http协议 2.2 HTTP的方法 2.3 HTTP的状态码 2.4 HTTP常见Header 3、传输层 3.1 端口号 3.1.1 端口号范围划分 3.1.2 netstat 3.1.3 认识知名端口号(Well-Know Port Number) 3.2 UDP协议 3.2.1 UDP协议端格式 3…

本地Tomcat网页搭建结合Cpolar内网穿透实现公网访问

文章目录 1.前言2.本地Tomcat网页搭建2.1 Tomcat安装2.2 配置环境变量2.3 环境配置2.4 Tomcat运行测试2.5 Cpolar安装和注册 3.本地网页发布3.1.Cpolar云端设置3.2 Cpolar本地设置 4.公网访问测试5.结语 1.前言 Tomcat作为一个轻量级的服务器,不仅名字很有趣&#…

JDBC 学习笔记(基础)

示意图 目录 创建 JDBC 应用 例子:通过本地协议纯 Java 驱动程序实现JDBC 代码具体步骤: 1.注册驱动 2.建立与数据库的连接 3.获取执行SQL语句的对象 Statement 4.定义执行 SQL 语句 5.操作结果集对象 ResultSet 6.关闭操作对象及连接对象 JD…