前言
之前复现了好些涉及php应用的漏洞,现在也该轮到java了!
漏洞简介
此漏洞是由于多个组件库存在不安全的反序列化,导致攻击者可以利用漏洞实现远程代码执行。
漏洞编号 | pom.xml替换部分 | poc替换部分 |
CVE-2020-36179 | <dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>1.4</version> </dependency> | org.apache.commons.dbcp.cpdsadapter.DriverAdapterCPDS |
CVE-2020-36180 | <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-dbcp2</artifactId> <version>2.8.0</version> </dependency> | org.apache.commons.dbcp2.cpdsadapter.DriverAdapterCPDS |
CVE-2020-36181 | <dependency> <groupId>org.apache.tomcat</groupId> <artifactId>tomcat-dbcp</artifactId> <version>7.0.53</version> </dependency> | org.apache.tomcat.dbcp.dbcp.cpdsadapter.DriverAdapterCPDS |
CVE-2020-36182 | <dependency> <groupId>org.apache.tomcat</groupId> <artifactId>tomcat-dbcp</artifactId> <version>9.0.4</version> </dependency> | org.apache.tomcat.dbcp.dbcp2.cpdsadapter.DriverAdapterCPDS |
环境搭建
打开idea,选择maven,如图:

填好项目文件名称及保存位置,之后idea会自动创建一个项目,如图:

替换pom.xml,然后保存,idea会自动下载依赖环境。
以CVE-2020-36180为例:

src -> main -> java -> poc.java
poc.java:
踩坑:
# 问题程序包com.fasterxml.jackson.databind不存在# 解决方法 在项目根目录下执行以下命令:mvn clean install -Dmaven.test.skip=truemvn -U idea:idea



最后出现如图:
即意味着环境已搭建🆗。
CVE-2020-36179
复现开始:
将payload exec.sql 放置web服务目录下(这里使用python3 起一个httpserver)
exec.sql:
# 弹计算器calc.exe

python -m http.server 80
执行poc.java,成功弹出计算器(如图):
CVE-2020-36180
复现开始:
将payload exec.sql 放置web服务目录下
exec.sql:
# 弹计算器calc.exe

python -m http.server 80
执行poc.java,成功弹出计算器(如图):
CVE-2020-36181
复现开始:
将payload exec.sql 放置web服务目录下
exec.sql:
# 弹计算器calc.exe
python -m http.server 80
执行poc.java,成功弹出计算器(如图):
CVE-2020-36182
复现开始:
将payload exec.sql 放置web服务目录下
exec.sql:
# 弹记事本notepad.exe

python -m http.server 80
执行poc.java,成功弹出记事本notepad.exe(如图):
看官轻喷
关于图片中的文件名错误, 不解释:
就是因为孤陋寡闻的我以为FastJson=FasterXML Jackson🙈。
如果不想折腾,可以在公众号后台回复jackson,获取我已经配置好的环境。
如图:

参考:
https://github.com/Al1ex/CVE-2020-36179





