巴黎人贵宾会-巴黎人的平台网址

菜单导航

Webgoat学习笔记 Alan.Li

编辑:?巴黎人的平台网址 发布时间:?2020年03月07日 08:12:45

0x00 安装 WebGoat的版本区别

WebGoat是一个渗透破解的习题教程,分为简单版和开发版,GitHub地址.

简单版安装

简单版是个JAVA的Jar包,只需要有Java环境,然后在命令行里实行

#!bash java -jar webgoat-container-7.0.1-war-exec.jar

然后就可以访问”127.0.0.1:8080/WebGoat”就可以了,注意”WebGoat”大小写敏感,不能写错.

开发版安装

WebGoat有些题目是开发版中才能做的,所以说需要安装开发版(但是比较坑的是安了开发版也有做不了的)先来看看条件

Java >= 1.6 ( JDK 1.7 recommended )

Maven > 2.0.9

Your favorite IDE, with Maven awareness: Netbeans/IntelliJ/Eclipse with m2e installed.

Git, or Git support in your IDE

Java环境肯定要装,然后因为我用的是Mac所以IDE用的是Xcode,Xcode自带了Git.所以剩下的就剩下Maven.

Maven

用过Xcode的应该知道CocoaPods,Maven就是类似CocoaPods的一个包管理App,下载地址中下载压缩包,不要下载源码

#!bash apache-maven-3.3.9-bin.zip

然后进行解压缩,之后进行Maven配置,其中x.x.x为版本号,Name为你Mac的账户名

将解压后文件夹apache-maven-x.x.x移到/Users/Name/Library目录下

然后修改~/.bash_profile的内容,如果不存在就新建一个

全部命令行为

#!bash cd ~/Downloads/ mv apache-maven-3.3.9 ~/Library/apache-maven-3.3.9 vi ~/.bash_profile

其中bash_profile的内容为

#!bash export MAVEN_HOME=/Users/Name/Library/apache-maven-3.3.9 export PATH=$PATH:$MAVEN_HOME/bin

然后进行测试

#!bash mvn -version

看到以下内容就是成功了

#!bash Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00) Maven home: /Users/Name/Library/apache-maven-3.3.9 Java version: 1.7.0_80, vendor: Oracle Corporation Java home: /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home/jre Default locale: zh_CN, platform encoding: UTF-8 OS name: "mac os x", version: "10.11.3", arch: "x86_64", family: "mac" WebGoat-Development

在环境安装完毕之后新建一个文件夹WebGoat-Workspace实行sh脚本自动下载和编译

#!bash mkdir WebGoat-Workspace cd WebGoat-Workspace curl -o webgoat_developer_bootstrap.sh https://raw.githubusercontent.com/WebGoat/WebGoat/master/webgoat_developer_bootstrap.sh sh webgoat_developer_bootstrap.sh 编译提示Exit

有时候可能会碰见类似这样的Debug提示

#!bash 2016-03-08 14:33:20,496 DEBUG - Exit: AxisEngine::init 2016-03-08 14:33:20,496 DEBUG - Exit: DefaultAxisServerFactory::getServer 2016-03-08 14:33:20,496 DEBUG - Exit: getEngine()

产生的原因是WebGoat-Lessons的课程配置不对,打开/WebGoat-Lessons/pom.xml大概在100多行找到以下这个,把7.1-SNAPSHOT改成正确的版本号,再次运行sh脚本就可以了

#!bash <dependency> <groupId>org.owasp.webgoat</groupId> <artifactId>webgoat-container</artifactId> <version>7.1-SNAPSHOT</version> <type>jar</type> <scope>provided</scope> </dependency> Chrome和BurpSuite

使用Chrome主要是其插件比较多,平时上网我都是用Safari的,下载一个插件”Proxy SwitchyOmega”,可以设置仅有Chrome走代理,然后将代理指向BurpSuite的端口和地址,BrupSuite使用看这里.

0x01 开始 WebGoat的大坑

由于WebGoat不同的版本课程都不一样,所以说网上的资料也不全,我用的是7.1.0版本,先来上个图

Figure01

而且!!!最坑的是!!!有些题根本他娘的没答案,或者答案是错的,开发版的题也不知道怎么做!

Introduction

这一章节教了你怎么用这个东西,以及怎么为这个组织贡献课程,主要就是3个选项,没什么实质教学内容

Java Source: 源码

Solution: 答案

Hints: 提示

General-Http Basics

这一章节让你明白什么是Http,可以用BurpSuite拦截一下报文和我Blog中讲的基础进行验证下,Solution使用的拦截工具是WebScarab,单独安装比较难,可以在Kali中使用,但是我用的是BurpSuite,效果一样.

Access Control Flaws-Using an Access Control Matrix

这个就是让你初步理解权限的概念,点一点,找到谁的权限最大就可以了

Access Control Flaws-Bypass a Path Based Access Control Scheme

这一节是让你利用拦截工具,改变参数,访问到原本不能访问的路径,在BurpSuite的Intercept里抓到这个请求

Figure02

然后根据Hints提醒使用shell脚本里切换到上一级目录的指令”..”修改File的值”CSRF.html”构造出另外一个指令

#!bash ../../../../../WEB-INF/spring-security.xml

就可以访问到目标目录意外的文件,但是坑爹的是不论试验了多少次都提示我

#!bash * Access to file/directory " ../../../../../WEB-INF/spring-security.xml" denied

然后看Solution里说是访问main.jsp于是改为

#!bash ../../../../../main.jsp

课程通过…Hints和Solution根本不一样…这就是WebGoat的坑爹之处

Access Control Flaws-LAB: Role Based Access Control Stage 1: Bypass Business Layer Access Control

权限管理问题,由于代码没有对Control里的Delete指令做权限管理,又通过action字段判断Control指令,所以原本不应该有Delete权限的Tom实行了Delete操作.

使用密码jerry进入Jerry Mouse的帐号,有ViewProfile和DeleteProfile的操作

使用密码tom进入Tom Cat的帐号,只有ViewProfile

实行ViewProfile拦截请求,改action为DeleteProfile

Stage2

说是需要在开发版下修复这个问题,没找到怎么修复.

Stage 3: Bypass Data Layer Access Control
XML 地图 | Sitemap 地图