Webgoat学习笔记
WebGoat的版别差异
WebGoat是一个浸透破解的习题教程,分为简略版和开发版,GitHub地址.
简略版装置
简略版是个JAVA的Jar包,只需求有Java环境,然后在指令行里履行
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的一个包办理软件,下载地址中下载压缩包,不要下载源码
apache-maven-3.3.9-bin.zip
然后进行解压缩,之后进行Maven装备,其间x.x.x为版别号,Name为你Mac的账户名
将解压后文件夹apache-maven-x.x.x移到/Users/Name/Library目录下
然后修正~/.bash_profile的内容,假如不存在就新建一个
悉数指令行为
cd ~/Downloads/
mv apache-maven-3.3.9 ~/Library/apache-maven-3.3.9
vi ~/.bash_profile
其间bash_profile的内容为
export MAVEN_HOME=/Users/Name/Library/apache-maven-3.3.9
export PATH=$PATH:$MAVEN_HOME/bin
然后进行测验
mvn -version
看到以下内容便是成功了
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2019-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脚本主动下载和编译
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提示
2019-03-08 14:33:20,496 DEBUG - Exit: AxisEngine::init
2019-03-08 14:33:20,496 DEBUG - Exit: DefaultAxisServerFactory::getServer
2019-03-08 14:33:20,496 DEBUG - Exit: getEngine()
发生的原因是WebGoat-Lessons的课程装备不对,翻开/WebGoat-Lessons/pom.xml大概在100多行找到以下这个,把7.1-SNAPSHOT改成正确的版别号,再次运转sh脚本就能够了
org.owasp.webgoat/groupId>
webgoat-container/artifactId>
7.1-SNAPSHOT/version>
type>jar/type>
provided/scope>
/dependency>
Chrome和BurpSuite
运用Chrome首要是其插件比较多,平常上网我都是用Safari的,下载一个插件"Proxy SwitchyOmega",能够设置仅有Chrome走署理,然后将署理指向BurpSuite的端口和地址,BrupSuite运用看这儿.
0x01 开端
WebGoat的大坑
因为WebGoat不同的版别课程都不相同,所以说网上的材料也不全,我用的是7.1.0版别,先来上个图
并且!!!最坑的是!!!有些题底子他娘的没答案,或许答案是错的,开发版的题也不知道怎样做!
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里抓到这个恳求
然后依据Hints提示运用shell脚本里切换到上一级目录的指令".."修正File的值"CSRF.html"构造出别的一个指令
../../../../../WEB-INF/spring-security.xml
就能够拜访到方针目录意外的文件,可是坑爹的是不管实验了多少次都提示我
* Access to file/directory " ../../../../../WEB-INF/spring-security.xml" denied
然后看Solution里说是拜访main.jsp所以改为
../../../../../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操作.
[1] [2] [3] [4] [5] [6] [7] [8] 黑客接单网