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 

搭建完成后浏览器访问

WebGoat搭建和Yakit学习_第1张图片 完成注册后就可以开始使用

WebGoat搭建和Yakit学习_第2张图片

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

WebGoat搭建和Yakit学习_第3张图片

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

WebGoat搭建和Yakit学习_第4张图片

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

WebGoat搭建和Yakit学习_第5张图片

将数据包发送到fuzz模块

WebGoat搭建和Yakit学习_第6张图片

WebGoat搭建和Yakit学习_第7张图片

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

WebGoat搭建和Yakit学习_第8张图片

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

WebGoat搭建和Yakit学习_第9张图片

要注意,不要复制=号

WebGoat搭建和Yakit学习_第10张图片

如图

WebGoat搭建和Yakit学习_第11张图片

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

WebGoat搭建和Yakit学习_第12张图片

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

WebGoat搭建和Yakit学习_第13张图片

Refreshing a token

WebGoat搭建和Yakit学习_第14张图片

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

WebGoat搭建和Yakit学习_第15张图片

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

WebGoat搭建和Yakit学习_第16张图片

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

eyJhbGciOiJIUzUxMiJ9.eyJpYXQiOjE1MjYxMzE0MTEsImV4cCI6MTUyNjIxNzgxMSwiYWRtaW4iOiJmYWxzZSIsInVzZXIiOiJUb20ifQ.DCoaq9zQkyDH25EcVWKcdbyVfUL4c9D4jRvsqOqvi9iAd4QuqmKcchfbU8FNzeBNF9tLeFXHZLU4yRkq-bjm7Q

WebGoat搭建和Yakit学习_第17张图片

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

WebGoat搭建和Yakit学习_第18张图片

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

WebGoat搭建和Yakit学习_第19张图片

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

WebGoat搭建和Yakit学习_第20张图片

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

WebGoat搭建和Yakit学习_第21张图片 WebGoat搭建和Yakit学习_第22张图片

WebGoat搭建和Yakit学习_第23张图片

你可能感兴趣的:(学习,web安全,docker,密码学,网络安全)