分析
程序访问的文件的方式应该是目录路径:
/usr/local/services/WebGoat/tomcat/webapps/webgoat/lesson_plans/English 接上我们选择的文件名称,而我们要访问的文件是:
/usr/local/services/WebGoat/tomcat/conf/tomcat-users.xml
我们要从English文件夹访问到conf文件夹中的内容,那只有使用相对路径了,所以
/usr/local/services/WebGoat/tomcat/webapps/webgoat/lesson_plans/English/http://www.cnblogs.com/http://www.cnblogs.com/conf/tomcat-users.xml 所以我们的目的就是向后台提交文件名
http://www.cnblogs.com/http://www.cnblogs.com/conf/tomcat-users.xml
方法
我们用启动FireBug用页面查找找到Select的第一个选项AccessControlMatrix.html,它的值为
当我们点击“View File”按钮的时候,提交的就是选中option的value,所以我们把 AccessControlMatrix.html选项的value改成
http://www.cnblogs.com/http://www.cnblogs.com/conf/tomcat-users.xml 这样选中AccessControlMatrix.html点“View File”的时候 提交的值就是我们想要的
http://www.cnblogs.com/http://www.cnblogs.com/conf/tomcat-users.xml
LAB: Role Based Access Control
这道题有4个步骤,每一步解题方式都类似,下面以第一小题为例
Stage 1: Bypass Business Layer Access Control
这一题需要登陆后操作,根据题目的提示,每一个用户的密码是用户名开头的字母小写,比如用户Larry Stooge (employee)的密码就是larry, Moe Stooge (manager)用户的密码就是moe。 我们登陆Tom Cat用户
由于Tom Cat只是普通员工,无法查看,也不能删除其他用户的信息,而我们的目的是要利用Tom用户突破权限限制,删除某个员工的信息
分析
这个题目应该是把用户权限校验放在了前台,用户提交请求后,后台也没有验证用户的权限,导致用户可以越权操作。要执行删除操作,首先我们得找到删除请求CGI的名称,所以我们得找一个有删除权限的用户,找到删除CGI,然后登陆Tom提交删除请求~
方法
登陆hr Jerry Mouse,发现
Jerry有删除用户信息的权限,我们用元素查找工具把这个Button的代码找到
“DeleteProfile”的内容如下,记录下来
把
。
完成任务~,利用同样的操作,如果我们想删除其他人信息怎么办呢? 下面同理可得
Stage 2: Add Business Layer Access Control Stage 3: Bypass Data Layer Access Control Stage 4: Add Data Layer Access Control Remote Admin Access
【WebGoat笔记】之三 --- AJAX Security 主要内容:
网页Ajax程序与服务器交互返回内容包括无格式文本,Json串,Xml串,回调的Js代码,而这些返回的信息存在有哪些威胁呢? DOM-Based cross-site scripting LAB: Client Side Filtering Same Origin Policy Protection DOM Injection XML Injection JSON Injection
Silent Transactions Attacks Dangerous Use of Eval Insecure Client Storage.
DOM-Based cross-site scripting
基于DOM的CSS(即XSS)漏洞
分析
基于DOM的CSS(即XSS)漏洞一般都是由于JS没有对输入的参数作过滤,导致用户可以输入一些XSS载体标签。
在输入框中,我们输入常规的字符发现上面都会出现Hello, XXX的显示
找到输入框的HTML代码,在键盘输入之后会激活displayGreeting事件,并将输入框中的内容作为参数传入
查看displayGreeting函数displayGreeting没有对参数做任何过滤,直接就替换了greeting的内容,这样我们就可以分析页面代码直接输入想要的标签来进行攻击了
greeting标签的内容如下
方法
输入
或者 这样就可以发起CSRF攻击了
但是这种漏洞的攻击模式在哪呢?需要用户打开这样的页面,还要骗取用户向这样的输入框里面输入攻击者发过去的信息,有难度,模式待研究….
LAB: Client Side Filtering
修改larry的id值,Neville的ID为112,选择larry,这样就可以看到CEO Neville的信息了
由此可见,重要逻辑的判断千万不能放在客户端
Same Origin Policy Protection
同源保护
DOM Injection
这个漏洞的意思应该是我在输入框内输入字符的时候会有一个ajax请求到后台验证我输入的key是否合法,然后决定是否激活Activate按钮,理论上应该是要返回我输入的内容,这样我在输入的内容里面插入Js在返回的时候就会被执行,这样就可以修改Activate按钮的属性达到Dom Injection的目的呀~
但是题目意思好像是要拦截返回包,修改返回包内容达到目的,我们简单点,直接改页面: 修改Activate!按钮的属性,把disabled删去~