java反序列化
审计工具
https://github.com/momosecurity/momo-code-sec-inspector-java
ysoserial相关参考文章
https://xz.aliyun.com/t/7157 ysoserial URLDNS | CommonsCollections1-7 分析
内存shell参考文章
http://m0d9.me/2020/09/27/Java%E5%86%85%E5%AD%98shell%EF%BC%9Aservlet/
https://mp.weixin.qq.com/s/x4pxmeqC1DvRi9AdxZ-0Lw
https://mp.weixin.qq.com/s/DRbGeVOcJ8m9xo7Gin45kQ
https://gv7.me/articles/2020/kill-java-web-filter-memshell/
https://landgrey.me/blog/12/
https://xz.aliyun.com/t/7388
https://www.cnblogs.com/rebeyond/p/9686213.html
jndi参考文章
https://www.cnblogs.com/Welk1n/p/11066397.html
https://github.com/welk1n/JNDI-Injection-Bypass
https://github.com/welk1n/JNDI-Injection-Exploit
https://github.com/veracode-research/rogue-jndi
https://github.com/feihong-cs/JNDIExploit
java反序列化标志
ac ed 00 05
反编译工具
JD-GUI、IDEA Fernflower插件、Bytecode-Viewer、Fernflower、JAD、JBE、JEB
Java框架层注入-JPA(JPQL注入)
Java框架层注入-HQL注入
基于三方调用框架-webservice接口
1.默认的安全配置
2.Axis2-jws文件
3.SOAPMonitor反序列化漏洞
4.Axis1、Axis2、Xfire、CXF相关漏洞
基于三方调用框架-DWR接口
1.默认的安全配置项
2.未授权的访问
3.Debug状态下的问题
4.常见路径:/exec、/dwr
基于三方调用框架-HESSIAN接口
1.未授权的访问
2.自带绕waf光环
3.自身未修复漏洞
基于三方调用框架-GWT接口
未授权访问
自带绕waf光环
接口枚举猜测
JDWP nc反弹
Date 201* 类型 远程命令执行 影响范围 前置条件 开启调试模式
Java %c0%ae 安全模式绕过漏洞
原理
在Java端"%c0%ae"解析为"\uC0AE",最后转义为ASCCII低字符-"."。通过这个方法可以绕过目录保护读取包配置文件信息 利用:
读取敏感文件被
修复:
下载Java的最新版本:http://www.java.com/zh_CN/
反序列化漏洞
漏洞原因
a.重写ObjectInputStream对象的resolveClass()方法中的检测可被绕过
b.readObject()
基础库中隐藏的反序列化漏洞commons-fileupload 1.3.1 commons-io 2.4 commons-collections 3.1 commons-logging 1.2 commons-beanutils 1.9.2 org.slf4j:slf4j-api 1.7.21 com.mchange:mchange-commons-java 0.2.11 org.apache.commons:commons-collections 4.0 com.mchange:c3p0 0.9.5.2 org.beanshell:bsh 2.0b5 org.codehaus.groovy:groovy 2.3.9 org.springframework:spring-aop 4.1.4.RELEASE POP Gadgets 检测反序列化应用场景:导入模板文件、网络通信、数据传输、日志格式化存储、对象数据落磁盘、DB存储
函数
ObjectInputStream.readObject ObjectInputStream.readUnshared XMLDecoder.readObject Yaml.load XStream.fromXML ObjectMapper.readValue JSON.parseObject
库
Apache Commons Collections(ysoserial所支持的其他库亦可) 防御
Hook resolveClass ValidatingObjectInputStream ObjectInputFilter