闲来无事又把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很容易就知道了。
要求使用普通用户访问另外一个用户的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???根据已有的信息根本就得不到这个解法。
或许只能根据“经验”然后多尝试几次猜出来才可以。