6.4 Web安全漏洞学习平台:WebGoat的使用

目录

一、预备知识

1、WebGoat介绍

2、JDK

二、实验环境

三、实验步骤

1、JDK安装

2、JDK环境配置

3、WebGoat下载

6、以字符串型SQL注入实验为例进行简单的讲解


一、预备知识

1、WebGoat介绍

        WebGoat是一个用来演示Web浏览器中典型安全漏洞的应用程序,其目的是在应用程序安全审查的上下文中系统、完整地介绍如何测试和利用这些安全漏洞。

        WebGoat用Java语言编写,可以安装到所有带有Java虚拟机环境的平台上。此外,WebGoat还分别为Linux、OS X Tiger和Windows系统提供了相应的安装程序。无论运行在什么操作系统平台上,WegGoat都会自动跟踪用户的操作过程,记录在平台上的学习进展。WegGoat 当前提供的训练课程有30多个,其中包括跨站点脚本攻击(XSS)、访问控制、线程安全、操作隐藏字段、操纵参数、弱会话Cookie、SQL盲注、数字型SQL注人、字符串型SQL注人、Web服务、OpenAuthen-tication、危险的HTML注释等内容。

        虽然WebGoat中对于如何利用漏洞给出了大量的解释,但还是比较有限的。不过,对于初学者来说,WegGoat是一个功能丰富、便于使用的学习平台。它的每个教程都明确告诉读者存在什么漏洞,但是如何去攻破这些漏洞,还需要读者继续查阅相关资料,通过进一步学习来了解该漏洞的原理、特征和攻击方法,甚至需要读者搜集相关的辅助攻击工具,完成各种攻击过程。

2、JDK

        JDK(Java Development Toolkit)是JAVA开发工具包,包括Java的运行环境(JRE)、java工具、java基础类库。一般安装完JDK后会有以下几个文件:

  • bin,包含java最重要的编译器;
  • lib,包含java的类库;
  • include,JAVA与JVM交互用的头文件。(JVM:执行JAVA程序的Java虚拟机。)

        也就是说,要想运行WebGoat,必须先安装JDK!!!

二、实验环境

实验清单
序号 软硬件要求 规格
1 数量 1台
2 操作系统版本 windows server 2008 R2
3 软件版本 JDK安装包、WebGoat安装包

三、实验步骤

1、JDK安装

        JDK18的下载地址:Java Downloads | Oracle

         解压下载的JDK18之后,双击“jdk-18-windows-x64_bin”文件,进行安装:

         按照流程,直至安装完成。需要注意JDK18的安装位置!如果像我一样无脑安装,JDK18大概率安装在“C:\Program Files\Java\jdk-18.0.2”这个路径下。

2、JDK环境配置

         在环境变量中,需要新建两个变量(JAVA_HOME和JAVA_CLASS),分别是:

JAVA_HOME  C:\Program Files\Java\jdk-18.0.2 (之前的安装目录)
JAVA_CLASS  C:\Program Files\Java\jdk-18.0.2

 

         找打PATH,在PATH后面加上:

;%JAVA_CLASS%\bin;%JAVA_HOME%\bin

         打开“cmd”,输入“java -version”:

        可以看到我们已经安装了JDK18.0.2。至此,JDK安装完毕。 

3、WebGoat下载

        WebGoat的下载地址:Releases · WebGoat/WebGoat · GitHub建议用迅雷下载,不然龟速!

        本实验下载“webgoat-server-8.2.2.jar”和“webwolf-8.2.2.jar”即可。

         下载完后,我是将这两个文件放在“C:\tools\webgoat”目录下。

        打开CMD,跳转到C:\tools\webgoat,使用命令:

cd C:\tools\webgoat

         然后运行webgoat,windows下用命令:

java -jar webgoat-server-8.2.2.jar

         如果像上图一样,则说明安装成功。

        注:在webgoat的安装包中,貌似已经集成了类似web服务器的功能,也就是说,不用像建网站一样,安装phpstudy、XAMPP等软件,可以直接在浏览者中访问WebGoat。

4、在浏览器中输入“127.0.0.1:8080/WebGoat/login”,注册并登录。

 

 5、以SQL注入为例,WebGoat会先让你熟悉常用的各种SQL语句,然后告诉你SQL注入的危害和防护方法,最后会给你一些各种SQL注入的例子练习,个人觉得该平台设计得挺好的。另外,纯英文网页,有点考验英文功底。

 6、以字符串型SQL注入实验为例进行简单的讲解

        选择“9”这个选项,单击进入如下页面。

         先点击“Get Account info”,看看页面如何回显。

         可以看到数据库执行的SQL语句是:

SELECT * FROM use_data WHERE first_name='john' and lastname='Smith or 1=1'

        上述SQL语句的意思是:从user_data表中,寻找first_name='john',且last_name='Smith or 1=1'的全部数据,也就是在数据表中,满足条件的一行数据。其中,last_name的内容是由我们控制的。

        看到能输入or 1=1,是不是应该有一种使"where"后面出现“xxx or 1=1”的冲动,因为“where xxx or 1=1”这句话,不就跟没得条件一样吗,1=1是恒成立,“xxx or 1=1”恒成立。

        那么我们可以这样输入(刚刚不小心重置了):

         如此填写之后,要执行的SQL语句,就会变成这样:

SELECT * FROM use_data WHERE first_name='john' and lastname='Smith' or '1'='1'

        框框中的内容都变成了字符串,那么SQL语句就变成了:

        SELECT * FROM use_data WHERE first_name='XXX' or '1'='1'这种形式,也就晒where后面相当于没条件了。提交数据,可以看到:

         成功通关。

        注:本实验仅演示字符型SQL注入,其余实验待完成。

猜你喜欢

转载自blog.csdn.net/qq_55202378/article/details/126332176
6.4