一次失败的定点漏洞挖掘之代码审计宜信Davinci

0x00: 基本目标

目标:xxx.target.com
目标漏洞:sql注入,rce,任意文件读取等
基础信息:
    可以注册
    可以登录
    系统为:宜信开源系统davinci (https://github.com/edp963/davinci
    版本:0.3.0-beta.9 release
 
0x01 可能存在的问题
基本逻辑问题
1,创建计划任务处可以获取其他用户的用户名和邮箱
 
关注的重点逻辑问题:
1,设法越权进入他人的项目(盗取信息)
2,设法越权获取他人的sources 信息 (没有越权)
3,设法越权修改用户密(没有找回密码功能)
 
可能可以突破的点:
1,看代码目标可以上传文件,解析xlxs,使用了poi 3.9 ,可能存在xxe,但好像上传不了xlsx,需要继续测试
2,source 功能中可以填写远程mysql 地址,联想可以用mysql 客户端任意文件读取,后续分析:但是目标用的是mysql connector 5.x 不在影响版本内。(mysql-connector-java 6.0.3-8.0.15)
3,因为填写的是jdbc,联想jdbc 反序列化。后续分析:利用urldns 虽然成功了,已知的gadget没有可利用的,唯一可利用的spring-tx 也因为缺少javax.transaction-api jar包 而断送了唯一的希望。需要从给出的jar包中挖一条新的gadget
 
 
0x02 深入研究:
1,xlsx的xxe 继续研究看看
2,从已知的jar包中挖一条新的gadget
3,系统源代码继续审计
 
后续经过仔细研究,xxe确实可以(有个地方传参理解错了),xxe获取到的java版本为1.8.0_144,难怪我用 jre8u20的 gadget打不了,而且xxe只能oob,读多几个 / 就歇菜了
 

 

xxe 的利用只能用来盲打内网了,内网IP为10.52.9.11

gadget太菜了,挖不到。

 

0x03 总结

总的来说就一个可能可以rce的点,链子待挖掘

posted @ 2020-08-17 15:44  水泡泡  阅读(110)  评论(0编辑  收藏