【WebGoat笔记】之一 --- WebGoat安装,访问与Firebug的使用 主要内容:
WebGoat的安装(略),内部访问方法与后续需要使用的Firebug的一些功能 一.WebGoat安装(略)与访问 二.浏览器推荐使用Firefox (1)FireBug安装 (2)定位查看页面元素 (3)Js调试
一.WebGoat安装(略)与访问
访问方式:
先配置host: xx.xx.xx.xx hacker.qq.com
访问URL:http://hacker.qq.com:8080/webgoat/attack 用户密码和密码是: guest/guest
二.浏览器推荐使用Firefox
在完成WebGoat的任务时,会有修改页面元素的部分,FireBug是个很不错的工具,可以助你早日通关,下面介绍下FireBug中之后我们会用到的几个功能
(1)FireBug安装
点击工具->附加组件打开组件管理器
获取附加组件中搜索FireBug,点击安装即可
打开FireBug,下面标记的是我们重点将用到的三个按钮
(2)定位查看页面元素
当我们激活”查看页面元素”按钮的时候,鼠标在页面移动时会有一个蓝色的框高亮显示当前鼠标所在元素,相应的下面HTML栏里面会在DOM树里面找到该元素所在位置,如下图所示
找到该元素后,点击左键确认,释放” 查看页面元素”按钮功能,这时我们就可以在HTML栏里面修改该元素的值
比如我要把” How To Work With WebGoat” 修改成 “Welcome to Paipai”
点击
查看页面,应该是即时生效了
,输入
(3)Js调试
注意上图中,脚本项要设置为”启动”
在这里我们用WebGoat中的一个实例来显示这个功能 实例位置:AJAX Security 下面的 Insecure Client Storage
目标:用户输入一个coupon后点击”Purchase”,前台Js会验证code的有效性,我们要通过修改Js运行时的变量值跳过这个检查~
使用” 查看页面元素”工具查看coupon code输入框,发现提交时,验证coupon code的js函数是javascript/clientSideValidation.js中的isValidCoupon(field1.value)函数
我们选中脚本栏,选择javascript/clientSideValidation.js文件,就可以找到isValidCoupon函数,或者在右侧的搜索框中直接输入isValidCoupon也可以查找到isValidCoupon函数
查看isValidCoupon函数,可以发现下图红框处就是判断coupon code是否合法的关键代码行了,在行数左侧点左键,设置一个断点
在coupon code的输入框内输入任何一个字母:
这时激活了onkeyup事件,调用isValidCoupon,程序运行到我们设置的断点处
可以看到我们输入的是coupon = 1
把鼠标放到变量decrypted上,显示decrypted = “PLATINUM”
要是函数返回ture,我们需要coupon == decrypted成立,所以我们在右边的监控栏中把coupon的值改成PLATINUM
鼠标移动到coupon上看看coupon的值已经被修改,点击运行按钮,通过~
【WebGoat笔记】之二 --- Access Control Flaws 主要内容:
Access Control Flaws
访问控制缺陷,这个栏目下的Bug属于将业务的关键逻辑放在了前台,而后台也没有作相应的校验,导致用户可以通过修改前台页面,跳过验证逻辑操作后台数据 Using an Access Control Matrix
Bypass a Path Based Access Control Scheme
LAB: Role Based Access Control 3
Stage 1: Bypass Business Layer Access Control 3
Using an Access Control Matrix
这个Bug属于程序员在作权限控制时的失误,题目提示:
Only the [Admin] group should have access to the 'Account Manager' resource.
分析
这道题的目的是想让我们找出不是Admin但是能访问'Account Manager' resource的人
方法
而我们的攻击方式就是不断的尝试user和resoure的组合
发现Larry用户的身份是 [User, Manager],访问Account Manager权限时竟然被验证通过了
Bypass a Path Based Access Control Scheme
在这一题里面我们有一个文件列表,点击“View File”可以访问相应的文件,“Current Directory is:”告诉了我们文件的绝对路径,我们的目的是访问一个不在文件列表中的一个数据,比如tomcat/conf/tomcat-users.xml