WebGoat第四关:Authentication Flaws

4-1 Password Strength

本关让你测试密码强度,进入他给的网站,把密码打上,测一下然后把时间填上即可。不过我做的时候用这种方法没有通关,大概是随着计算机处理能力的提高,所用的计算时间变短了,而题目的答案是基于这个project建设时候的密码计算时间,所以过不了。

经验教训:目前应该没有能使用密码词典破解密码的网站了吧,不过即便如此还是使自己的密码复杂一点好。

4-2 Forgot Password

本关让你使用弱口令获取别人的密码。根据提示,我们使用admin用户,然后系统出现密码找回的问题,你最喜欢的颜色是什么?尝试了red white black blue pink yellow green 后发现green就是争取答案,于是通关。(话说我的词汇量也就只会这些描述颜色的词汇了。。。。。)

经验教训:别选太弱智的密码提示答案。

4-3 Basic Authentication

这大概是第四关中最有意思的一关了。首先我们先看看所谓的Basic Authentication是什么。根据题目描述,大概就是为了保护服务器资源,当浏览器请求一个资源的时候,服务器先返回401要求认证,此时浏览器弹出一个对话框让用户输入用户名和密码,认证成功后才能继续访问。我们不禁想到刚进入webgoat的时候貌似就需要一个认证,我重走了这个过程抓包分析了一下,发现认证后每个http请求都会加入一个Authororization域,这个域也就是题目要求的域,抓包截图如下:

所以请求头是Authorization ,请求的内容是 Z3VIc什么什么的,用webscareb的base64decode一下发现内容是guest:guest,把这个打上去点击提交就可通关。(另外这个BASIC是什么,我一开始尝试把它加在头域中系统提示我错误,加在值域中也提示我错误,去掉之后才正确,哭笑不得。)

接下来进入第二步,让你重新使用basic:basic进行认证。

首先截取请求,尝试将basic:basic用base64编码一下,替换原来的字符串,系统提示如下:

You're almost there! You've modified the Authorization header but you are still logged in as guest. Look at the request after you typed in the 'basic' user credentials and submitted the request. Remember the order of events that occur during Basic Authentication.

的确我改了验证头,但是服务器端依然认为我是以guest身份登陆的。为什么?当我第一次登陆的时候,服务器可能会把我的ip和登陆信息绑定,强制认为这个ip就是用这个登陆信息登陆的,也可能是把我的sessionid和登陆信息绑定,当然作为一个web应用程序,我更愿意做出后一种推断,所以我这次把验证头和session一起改(直接把cookie删掉,验证头改成basic,basic),尝试一下这种方法行不行。

结果依然不行,系统提示:的确你让服务器改了session,但没有产生一次重新验证,你需要产生一次重新验证才可以。

好既然你让我重新验证,那我直接把验证头和cookie都删掉!。

删掉之后果然出现了熟悉的验证框,输入basic,basic后,截取向服务器端发送的请求,然后发现http请求包仍然被浏览器加上了sessionid,果断删掉(浏览器是根据站点cookie加上sessionid的,换言之这个cookie没有过期并且服务器没有通知浏览器sessionid失效,每一个http请求都会加上sessionid),然后发现是一个崭新的webgoat课程,之前的通关记录什么的全没了,点到这一关,果然提示congratulation! 通关!

经验教训:个人不是很理解这种攻击的用处,尤其是欺骗服务器重新以另一种身份登录,还望大神们赐教。

 

4-4 Multi Level Login 1

第一步直接输入即可。第二步让你try to break into the system anyway,首先使用Jane tarzan登录,然后提示输入Tan2的密码,可是我们只有TAN1的密码,随便输入一个点提交抓包看看情况。发现在post请求中有很明显的信息,hidden_tan=2&tan=15648&Submit=Submit,把hidden_tan=2改成1,果断通关。

经验与教训:真是无聊的关卡啊。

 

4-5 Multi Level Login 2

给你一个Joe用户的信息,让你当做Jane登陆,首先登陆进去,提示输入TAN1的密码(估计是个不确定的,比如我第一次做就是要求输入TAN2的密码),然后尝试性抓包得到post里的信息hidden_user=Joe&tan2=15161&Submit=Submit,把Joe改成Jane即可通关。

经验教训:真是无聊的关卡啊,too。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值