WebGoat第二关:Access Control Flaws

闲来无事又把webgoat第二关打通了,第二关总体上来讲比较简单。

2-1 :Using an Access Control Matrix 没啥可说的,随便试试就通关了。

2-2 : Bypass a Path Based Access Control Scheme

根据提示尝试访问tomcat根目录下的conf目录里的tomcat-conf.xml,解法大体思路有两种,首先用webscarab抓包发现会把请求的文件名post过去,根据提示不难想到文件名同时也就是一个相对路径。然后使用../加到文件名前面可以返回上级路径就能实现访问其他文件夹的文件。

直接用webscarab抓包修改post过去的内容就行,也可以修改当前页面的js,使列表中选项的value变成相对路径的值。

如果尝试访问其它文件夹中的内容系统也会提示你通关,比如我就尝试访问了一个Image文件夹下的jpg文件,如何知道这个文件存在呢?看了一下当前页面的html很容易就知道了。

 
2-3-1 Stage 1: Bypass Business Layer Access Control
通关要求使用普通用户登陆并执行delete命令,首先用普通命令登陆进去发现没有delete按钮。
然后使用弱口令登入一个管理员账户(这口令也真够弱的),然后点击删除按钮,抓包发现post过去两个内容,一个是要删除的id,一个是action,把这个两个记下来。
然后用普通用户tom cat登陆(我能吐槽这名字吗?),随便点击一个按钮,然后改下post的数据为刚才记录的数据,即可通关。
真是弱爆了的漏洞啊。(不弱爆估计也通不了啊)
 
2-3-2 Stage 2: Add Business Layer Access Control
要求你改代码修复2-3-1的漏洞,不会jsp,所以没做。感觉应该不是很难吧,通关方式应该可以多样吧,随便想一种比如把登陆用户的uid放到session里,然后每次操作先根据uid查roles表验证权限再操作,感觉应该可行。
 
2-3-3 Stage 3: Bypass Data Layer Access Control

要求使用普通用户访问另外一个用户的profile。

解法同2-3-1,进入一个普通用户账号,点击profile,抓包,发现会把自己的id给post过去,然后改成别人的id即可通关。

 

2-3-4 Stage 4: Add Data Layer Access Control

要求改代码修复2-3-3的漏洞,不会jsp,没做。

 

2-4 Remote Admin Access

要求你找出使用WebGoat的admin接口的使用方法。

感觉这个关卡设计的有问题,提示太少了,根据已有的信息很难在没有攻略的情况下做出。

首先,这个admin接口在哪里。

根据提示,尝试访问tomcat的admin接口,然后提示说我没装这个admin功能,让我去下载。这条线索基本就断了。

然后我思考,这个admin interface在哪里?根据以往经验,我尝试什么admin.jsp admin.html login.jsp  admin/admin.jsp等,发现全是404。

然后我乱点的时候在左边侧边栏倒数第二行发现很不起眼的admin function,这不是坑爹嘛,如果是这个你给个提示能死啊。

点进去之后发现就一个选项,点了后没啥反应。

然后彻底没思路了。

看攻略发现要在get请求的时候加上admin=true这个参数,抓包手动添加也行,直接加在url后面也行。

非常无语,为啥是admin,为啥是=true???根据已有的信息根本就得不到这个解法。

或许只能根据“经验”然后多尝试几次猜出来才可以。

你可能感兴趣的:(WebGoat第二关:Access Control Flaws)