WebGoat——Authentication Flaws(一)

一、Password Strength 密码强度

(1)题目:
The Accounts of your Webapplication are only as save as the passwords. For this exercise, your job is to test several passwords on https://www.cnlab.ch/codecheck. You must test all 5 passwords at the same time…
web应用程序的账户安全与密码安全保持一致。在本次练习中,你的任务是在网站上此时几个密码的强度。你应当测试以以下5个密码。。。

(2)课程目标
在这里插入图片描述课程主题:
账户安全等同于密码安全。大多数的用户在不同的地方使用相同的弱密码。如果您想保护它们免受暴力攻击,您的应用程序应该对密码有很好的要求。密码应包含小写字母,大写字母和数字。 密码越长越好。
课程任务:
在本次练习中,你的任务是在以下网站测试密码的强度。

(3)操作步骤
1.点击网页,进入网站。
网页一打开显示的是德文,一个字也看不懂,于是换用了谷歌浏览器毕竟谷歌翻译比较强大),翻译之后的网页如图
在这里插入图片描述这就比较尴尬了,然后点击链接进入新网站。
在这里插入图片描述输入一组密码,发现并没有显示密码对应所需的时间。
在这里插入图片描述于是找到WebGoat的Solution,找到对应的时间,填进去。。。
在这里插入图片描述在这里插入图片描述(这里我尝试找了几个密码测试的网站,有对密码强度进行分级评分的,并没有显示具体所需的时间,于是我将solution文件中的时间填入,点击了提交。。。)

二、Forget Password 忘记密码

(1)题目:
Web applications frequently provide their users the ability to retrieve a forgotten password. Unfortunately, many web applications fail to implement the mechanism properly. The information required to verify the identity of the user is often overly simplistic.
Web应用向用户提供找回密码的功能。不幸的是,许多web应用没能正确实现密码找回机制。验证用户身份所需的信息通常过于简单。
General Goal(s):
Users can retrieve their password if they can answer the secret question properly. There is no lock-out mechanism on this ‘Forgot Password’ page. Your username is ‘webgoat’ and your favorite color is ‘red’. The goal is to retrieve the password of another user.
实验目标
用户如果能正确的回答密保问题,他们就可以取回密码。在此页面的忘记密码中没有锁定机制。你的用户名是“webgoat”,你的最喜爱的颜色是“红色”。你的任务是找回另一个使用者的密码。

(2)课程目标
在这里插入图片描述课程计划标题:如何利用忘记密码页面
课程主题:Web应用向用户提供找回密码的功能。不幸的是,许多web应用没能正确实现密码找回机制。验证用户身份所需的信息通常过于简单。
课程任务:用户如果能正确的回答密保问题,他们就可以取回密码。在此页面的忘记密码中没有锁定机制。你的用户名是“webgoat”,你的最喜爱的颜色是“红色”。你的任务是找回另一个使用者的密码。

(3)操作步骤
在这里插入图片描述
1.输入admin用户名,点击submit。

2.输入颜色 ,我分别输了red,yellow,black,green,发现green是正确答案。
在这里插入图片描述
3.输入green,点击submit。

在这里插入图片描述
三、Basic Authentication 基本认证

(1)题目:
Basic Authentication is used to protect server side resources. The web server will send a 401 authentication request with the response for the requested resource. The client side browser will then prompt the user for a user name and password using a browser supplied dialog box. The browser will base64 encode the user name and password and send those credentials back to the web server. The web server will then validate the credentials and return the requested resource if the credentials are correct. These credentials are automatically resent for each page protected with this mechanism without requiring the user to enter their credentials again.
基本身份认证用来保护服务器端的资源。Web服务器将发送401身份验证请求以及对所请求资源的响应。然后,客户端浏览器将使用浏览器提供的对话框提示用户输入用户名和密码。浏览器将对用户名和密码进行base64编码,并将这些凭据发送回Web服务器。然后,如果凭据正确,Web服务器将验证凭据并返回所请求的资源。对于使用此机制保护的每个页面,将自动重新发送这些凭据,而无需用户再次输入其凭据。
General Goal(s):
For this lesson, your goal is to understand Basic Authentication and answer the questions below.
总体目标:
在这一课程中,你的目标是理解基本认证机制并且回答下列的问题。
在这里插入图片描述(2)课程目标
在这里插入图片描述
(3)操作步骤

1.打开浏览器的代理,用Burpsuite进行抓包。
在这里插入图片描述
在HTTP头中包含一个基本身份认证信息“Authorization”,其值为第一个红框中的值。

2.打开Burpsuite的Decoder,对其值进行Base64解码。

在这里插入图片描述在这里插入图片描述可得其值为guest:guest

3.在页面中输入正确信息。
在这里插入图片描述点击Submit。
在这里插入图片描述
4.现在需要以账号basic,密码basic的身份登录至系统。

首先,需要熟悉JSESSIONID cookie是如何用来进行会话管理,以及如何用基本身份认证头来进行基本身份认证。
**当WebGoat 检测到一个有效的会话,您会被自动重定向到您正在进行的课程页面,如果没有检测到有效会话,WebGoat会创建一个新的JSESSIONID,您会看到第一课。**以WebGoat作为基本访问,您需要破坏现有的JSESSIONID和Authorization头,您可以在Webscarab中截取请求并删除JSESSIONID的值以及Authorization头。
WebGoat将要求您进行身份验证,您现在可以输入用户名“basic”,密码“basic”。在日志中显示将以basic用户登录。还记得我们的JSESSIONID吗?这个*JSESSIONID是一个非持久性的cookie,在第一次访问时设置,从浏览器到WebGoat的每个请求都有一个cookie值。*破坏先前的请求,不会改变存储在浏览器内存中的cookie值,这就是为什么每次请求都会发送以前的JSESSIONID值的原因。

5.利用burpsuite抓包,破坏现有的JSESSIONID和Authorization头。

在这里插入图片描述删除红框中的数值,点击forward(破坏现有的JSESSIONID和Authorization头)。
此时,WebGoat将要求您进行身份验证,浏览器界面提示输入用户名及密码:
在这里插入图片描述6.此时点击登录,burpsuite中抓包如下图所示:

由于需要有效的JSESSIONID,WebGoat身份验证的用户通过服务器端使用
getSession().getUser()方法检索。为了让WebGoat相信你就是被认证的basic用户,你需要按照图中的方式修改JSESSIONID=novalidsession。
在这里插入图片描述

在这里插入图片描述点击forward。
在这里插入图片描述在这里插入图片描述7.此时,基本认证部分的任务已全部完成,关闭浏览器并以guest账号登录。
在这里插入图片描述
可见该课程已完成。

猜你喜欢

转载自blog.csdn.net/lay_loge/article/details/89352800