Java代码审计入门

环境准备

Docker得用魔法,现在倒是有个经过审查的Docker镜像源。Linux下配置文件为/etc/docker/daemon.json,Windows下直接在Docker Desktop中改。配置文件如下:

1
2
3
4
5
{
"registry-mirrors": [
"https://hub.atomgit.com/"
]
}

然后刷新守护:

1
2
3
sudo systemctl daemon-reload
sudo systemctl docker restart
docker info #查看是否换源成功

若出现意外则用apt删了重装就行,反正我重装了三遍才换好。

Docker常用命令:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#测试用
docker pull hello-world
docker run hello-world

#基础命令
docker run ubuntu echo "helloworld"
docker search tomcat
docker images
docker ps
docker start 28 #28是容器ID的前2位
docker restart 28
docker stop 28
docker run 28
docker rmi -f 28 #删除 必须是停止的

run指令常用参数:

参数 左右
-p 容器内部端口绑定到指定主机端口
-P 容器内部端口随机映射到主机端口
-t 提供终端输入
-i 提供交互
-d 容器在后台运行

例如:

1
2
3
4
5
6
7
#生成一个容器,运行后可用浏览器访问本地8080端口访问容器的Tomcat服务,第一个8080为本机端口号,第二个为容器中Tomcat服务端口号
docker run -p 8080:8080 -d dordota/tomcat
#生成Ubuntu系统的交互式终端
docker run -it ubuntu
#复制文件进出容器
docker cp ./flag.txt 28:/var/
docker cp 28:/var/flag2.txt C:\Users\test

这里靶场用VulHub,去Github上下载,或怕浪费梯子就用GitCode。在某个CVE文件夹下,使用以下命令,便会根据docker-compose.yml自动拉取镜像。

1
docker-compose up -d

对于IDEA远程动态调试,先新建一个IDEA空Java项目,新建lib目录并右键添加为库,然后就可以反编译了。在“运行…”中添加新的“运行/调试配置”,选择“远程JVM调试”,参数保持默认。起一个新命令行,用以下命令挂起目标JAR包,再用IDEA调试即可挂靠:

1
java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005 Behinder.jar