这次斗哥带来了Java代码审计的一些环境和工具的准备。
与PHP相比,Java语言还比较复杂,因此第一次接触审计Java源代码时,会遇到一些环境和配置方面的困难。 本文记录了斗哥为开始Java代码审计的准备,希望对刚入门的初学者们有所帮助。
000 Java环境说明
安装Java环境
安装完成后的默认安装目录:
环境变量的配置、环境变量的配置主要是在自己的计算机Java安装后告诉我们几个重要文件的路径。
JDK的安装路径在哪里? ——JAVA_HOME
JDK命令文件的位置(xfdwk文件夹路径) ——路径
类库文件的位置(lib文件夹路径) ——类路径
运行Java程序
Java代码必须在执行之前进行预编译。 编译器首先将Java源文件编译为二进制文件,然后解析器将其解析为二进制文件。
HelloWorld.java
因为典型的java源文件不能像PHP或Python那样直接解析,所以如果不借用IDE,则必须使用javac命令进行编译。
编译后,获得与. class相对应的字节码文件。 这可以用java直接分析。
3. Java反编译
大多数情况下,会得到以. class结尾的字节码文件,而不是java源文件。 所以,我们需要一些工具来反编译和查看合适的源代码。 那么在这里,我推荐使用一种叫做jd-gui的工具。
下图显示了上述过程。
4. Java平台
刚接触Java平台的时候,接触过JavaSE、JavaEE、JavaME等几个名词。 简单理解:
Java SE ——电脑软件的开发
Java EE ——开发网站
Java ME ——手机软件的开发
Java平台,标准版(Java )--开发和部署在桌面、服务器、嵌入式和实时环境中使用的Java APP应用程序。 Java SE包含了支持Java Web服务开发的类。
Javaee平台,企业版(Javaee ):Javaee基于Java SE构建,是用于实现企业级面向服务的体系结构和Web2.0APP应用程序的web服务
Java平台、微版(Java me ) :为移动和嵌入式设备(如移动电话、PDA、电视机顶盒和打印机)上运行的APP应用提供强大而灵活的环境。
002 Tomcat的安装和使用
1. Tomcat介绍
典型的Java服务器: Tomcat、Weblogic、JBoss、GlassFish、Jetty、Resin、IBM Websphere等。
Tomcat服务器是一种免费的开源web APP应用服务器,它是一种轻量级APP应用服务器,在中小型系统和并发访问等许多场合都很普遍,非常适合于JSP程序的开发和调试。
Tomcat安装包可以下载到apache的官方网站。 解压缩后的目录结构如下。
2.Tomcat展开源代码
示例:引入JavaPMSpublicedition源代码
将根目录重命名为javapms1.4,并将其复制到tomcat的webapp目录中。
使用003 IDE
1 .选择适合自己的IDE
虽然我个人已经习惯了IDEA,但是除了IDEA以外,myeclipse也是个不错的选择。
2 .在2.IDEA上部署WEB项目
因为在IDE中部署项目将有助于调试代码和代码跟踪。
示例:引入JavaPMSpositioningedition源代码。
执行程序,例如配置tomcat。
3.IDEA上调试功能
这里主要用到的是IDEA的Debug功能。
下面是几个调试中会用到的几个快捷键:
●F7 ,进入下一步,如果当前断点是一个方法,进入方法体。
●F8 ,进入下一步,但不会进入方法体内。
●Alt+Shift+F7 , 进入下一步,如果当前断点是一个方法,方法还有方法则循环进入。
●Shift+F8 ,跳出到下一个断点,也可以按F9来实现。
●Drop Frame ,当进入一个方法体想回退到方法体外可以使用该键。
0×04 Maven——项目管理和构建工具
1.Maven介绍
Maven是一种自动构建项目的方式,可以帮助我们自动从本地和远程仓库拉取关联jar包。
官网地址:
maven 远程仓库:
之前审计的WebGoat就是使用Maven部署起来的。
2.Maven部署项目
在IDEA上部署Maven项目,这边以部署WebGoat源码为例。
3.部署完成,运行与排错
如果使用旧版的IDEA,那么程序的兼容性比较高,直接运行StartWebGoat.java文件,该文件的完整路径是WebGoatwebgoat-serversrcmainjavaorgowaspwebgoatStartWebGoat.java
然而不幸的是,使用最新版的IDEA报错了,报错信息如下:
这是由于WebGoat的代码编写不够规范,在项目下的pom.xml没有规范书写程序包com.beust.jcommander.internal的相关信息,需要补充完整,补充如下:
pom.xml的完整路径为WebGoatwebgoat-containerpom.xml。
修改完成后,重新运行StartWebGoat.java,如果没有出错,看到控制台的Spring Boot运行界面说明编译和运行成功。
0×05 Fortify 代码审计工具
Fortify是一个自动化的代码审计工具,斗哥这里使用的是在FreeBuf上rydwx的2009年版的一款,框架是eclipse+规则库。而他的收费版本费用实在惊人。2009版的规则库都比较早期了,它允许我们自定义规则,所以可以在这个版本基础上增加审计规则。
有问题大家可以留言哦也欢迎大家到春秋论坛中来耍一耍 >>>点击跳转