WebGoat8 M17 Password Reset 密码重置 答案、思路、题解

这部分相比前面JWT要简单很多。

 

题目2:Email functionality with WebWolf

步入正题,练习题2,点击输入框下面的“Forgot your password?”,然后发一封邮件到 {你的WebGoat用户名}@webgoat.org ,这个带密码的邮件会在Webwolf中被收到,密码就是用户名倒过来。直接用密码登录即可。

WebGoat8 M17 Password Reset 密码重置 答案、思路、题解

 

题目4:Security questions

练习题4,这道题要求我们取得一个自己的号以外的账号的密码。但实际操作中我发现并不需要密码,只要把安全问题的答案找出来就好。

 

首先我们要找一个可用的用户名。

填自己的信息点Access抓个包,发送到Intruder,将username的值设为变量,上网随便找个常见英文名大全作字典(我这里偷懒用的之前题目用到的google10000个英文单词字典刚好也能用,但最好还是用英文人名字典)WebGoat8 M17 Password Reset 密码重置 答案、思路、题解

下图可以看到,当用户名为tom的时候,响应里是:

Sorry, the solution is not correct, please try again.

而如果用户名不存在,显示会是:

User xxx is not a valid user.

因此可知存在一个tom用户。

WebGoat8 M17 Password Reset 密码重置 答案、思路、题解

 

再来把username改成tom,去掉变量,后面securityQuestion的值设为变量。

WebGoat8 M17 Password Reset 密码重置 答案、思路、题解 

字典还是网上找些常见的颜色单词:

WebGoat8 M17 Password Reset 密码重置 答案、思路、题解 随便**一下就出来了。

 

答案(不唯一):

tom

purple

 

 

Creating the password reset link

 

题目:

我们要拿到tom的密码,而tom会自动点击他收到的重置邮件里的链接。

 

首先给自己发个重置链接并抓包

放到repeater里发出去,可以看到响应里提示邮件已发送到我的WebWolf邮箱。

WebGoat8 M17 Password Reset 密码重置 答案、思路、题解

 再看收到的邮件:

WebGoat8 M17 Password Reset 密码重置 答案、思路、题解

里面有一个超链接。点击链接,重置密码后会显示重置成功,但如果再次刷新,页面又会变成让你重置密码。换而言之,这个重置链接是长期有效的。

WebGoat8 M17 Password Reset 密码重置 答案、思路、题解 

另外观察这个重置页面的URI,会发现是一串随机的数字字母直接接在了链接尾。

 

我们可以推测整个过程:POST请求会生成一个重置密码的链接(这个链接是一串随机的数字字母接在某个地址后),并把重置链接放在邮件的超链接里,发送给指定的邮箱。

那么,通过修改host为9090(WebWolf端口),我们可以将用户点击重置链接时请求的地址改掉,当用户点击这个假的链接时,WebWolf中就会收到带重置地址的请求。如图:

WebGoat8 M17 Password Reset 密码重置 答案、思路、题解

 WebGoat8 M17 Password Reset 密码重置 答案、思路、题解

我们用8080端口打开这个重置链接,就能重置tom的密码了。重置完了登录,过关。 

WebGoat8 M17 Password Reset 密码重置 答案、思路、题解