主页 > 网络知识 > Java代码审计入门篇:WebGoat 8(初见)

Java代码审计入门篇:WebGoat 8(初见)

WebGoat8是基于Spring boot框架开发,故意不安全的Web应用程序,旨在教授Web应用程序安全性课程。该程序演示了常见的服务器端应用程序缺陷。本文将简要分析WebGoat8的登陆模块,注册模块,作为热身,随后对SQL注入课程进行代码审计。

基础

本人对WebGoat8进行review code之时,仅有些许Java基础,了解过Spring框架,maven,对于Spring boot是第一次接触。所以本文是一个初学者面对新框架的条件下,做的一些探究记录。

准备

Java 11

Maven > 3.2.1

IDEA

⚠️注意,Java JDK版本需要11,这个不能偷懒,亲测Java8(burp suit运行环境)编译失败无法启动。需要做好Java版本切换准备。

下载源码

在command shell中

git clone https://github.com/WebGoat/WebGoat.git

编译项目

cd WebGoat

mvn clean install

运行项目

mvn -pl webgoat-server spring-boot:run

访问WebGoat

localhost:8080/WebGoat

import WebGoat到IDEA 进行代码查看及调试

选择Maven

 

Java代码审计入门篇:WebGoat 8(初见)

 

Root directory选择WebGoat目录

 

Java代码审计入门篇:WebGoat 8(初见)

 

勾选Maven porjects

 

Java代码审计入门篇:WebGoat 8(初见)

选择SDK11

 

 

Java代码审计入门篇:WebGoat 8(初见)

任意Project name

 

 

Java代码审计入门篇:WebGoat 8(初见)

随后我们就能看到,配置都帮我们做好了,可以立马开始运行和调试的操作,一步到位!非常舒服。

Java代码审计入门篇:WebGoat 8(初见)

 

 

Java代码审计入门篇:WebGoat 8(初见)

这个时候你或许就想马上开始运行调试,然后发现报错了,或许这是因为前面你运行了mvn命令8080端口被占用的原因,关闭mvn即可。

 

组件安全

我们可以在IDEA左侧栏中查看到导入的包(组件)。通过查看这些组件及其版本,我们可以寻找是否引入了存在已知漏洞的组件。例如:Struts2(RCE等)、不安全的编辑控件(任意文件上传,xss等)、XML解析器(xxe)以及可被其它漏洞利用的如commons-collections:3.1(反序列化RCE)等等。

从下图我们也可以发现,稍微大一点的应用,组件都会非常多。一个个去搜索查看组件是否存在已知漏洞会变得非常不现实,因此,我们需要批量化工具去为我们检测组件安全。在这里,我们可以了解一下:OWASP-Dependency-Check

Dependency-Check是OWASP(Open Web Application Security Project)的一个实用开源程序,用于识别项目依赖项并检查是否存在任何已知的,公开披露的漏洞。目前,已支持Java、.NET、Ruby、Node.js、Python等语言编写的程序,并为C/C++构建系统(autoconf和cmake)提供了有限的支持。而且该工具还是OWASP Top 10的解决方案的一部分。

Dependency-Check支持面广(支持多种语言)、可集成性强,作为一款开源工具,在多年来的发展中已经支持和许多主流的软件进行集成,比如:命令行、Ant、Maven、Gradle、Jenkins、Sonar等;具备使用方便,落地简单等优势。

此次不对Dependency-check进行详细讲解,有兴趣的朋友可以访问以下链接了解:

https://www.owasp.org/index.php/OWASP_Dependency_Check
https://yq.aliyun.com/articles/698621

说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!