WebGoat攻略 for Mac(1)
WebGoat攻略 for Mac(2)
WebGoat攻略 for Mac(3)
一、题目攻略
A2.Broken Authentication(认证中断)
1.Authentication Bypasses(认证绕过)
- 认证绕过
认证绕过以多种方式发生,但通常利用配置或逻辑中的一些缺陷。篡改以达到正确的条件。如隐藏输入、移除参数、强制浏览等。
- 2FA密码重设
任务是成功获得更改密码的权限。
首先随便输入一些数,然后点击Submit进行抓包,如图所示。
上面例子是把密保问题的相关输入删掉(即删掉secQuestion0和secQuestion1),但是我试了一下不行,然后尝试修改参数名,改为secQuestion00与secQuestion11,如图所示。
然后重发送,显示成功绕过认证,任务完成。
2.JWT tokens(JWT代币)
- JWT令牌的结构
令牌是base64-url编码的,由header.claims.signature三部分组成。下面是示例。
JWT header(头部):
{ "alg":"HS256", "typ":"JWT"}
JWT payload(声明):
{ "exp": 1416471934, "user_name": "user",
"scope": [ "read", "write" ],
"authorities": [ "ROLE_ADMIN", "ROLE_USER" ],
"jti": "9bc92a44-0b1a-4c5e-be70-da52075b9a84",
"client_id": "my-client-with-secret"}
签名(HS256为例):
HMACSHA256(base64UrlEncode(header) + "." + base64UrlEncode(payload),secret)
- 认证并获取JWT令牌
会话流程:
1、用户端登陆,用户名和密码发往服务器。
2、服务器验证后生成JSON头部和声明并加密,生成JWT,此时服务器并没有保存登录状态信息。
3、服务器将JWT返回客户端(响应)。
4、客户端将JWT写在HTTP请求头部的Authorization字段中。
5、服务器对JWT验证,若成功确定用户登录状态。
6、服务器返回响应。
Base64 URL编码中,"+“会变成”-","/“会变成”_","="会被去掉。
- JWT签约
任务是取得管理员权限并重置投票。
点击上方的垃圾箱(重置投票),显示只有管理员才有权限操作。抓包抓到重置时的POST: