记一次众测找源码到RCE

  • A+
所属分类:代码审计

作者:水泡泡,来源:先知社区

前言

某众测项目,一个多端入口系统

PC,APP,与及测试后台

上来就去后台摸了一下底

前端:react

认证授权:jwt token

框架:springboot+spring mvc+mybatis

文件存储:某云oss

很现代化的系统

转变思路

转眼一想,目标是某国企,这个系统也不是他们自己的业务,给内部员工用的,应该不会自己开发吧?

于是就想会不会用的是第三方公司软件,想办法把源码搞下来。

首先得明确这个系统是不是第三方的,前端是react,js,css等都用webpack打包好了,html页面没啥特别特征,翻了一下js看到了一个不是目标的域名

记一次众测找源码到RCE

顺着域名,找到了这个公司的官网,上海某提供多端入口整套解决方案的公司,没有猜错,接着目标就变成了对这家公司进行信息收集。

摸到了:

记一次众测找源码到RCE

github "target.com"搜了一下,找到了个仓库,一个运维同学写的自动化脚本,里面包含了内网的一些IP信息,配置信息

如:

accesskey:

记一次众测找源码到RCE

有一个十分关键的是这家公司用的是docker容器部署,这还是上的微服务架构

各种容器的部署yaml

记一次众测找源码到RCE

十分巧的是他们用的是某第三方docker镜像服务来存储镜像,外网可访问(运气爆棚)

记一次众测找源码到RCE

账号密码Get到,直接docker命令登录上去,但很可惜没办法对仓库进行搜索,只能pushpull,但有上面的yaml配置,知道了镜像命名,碰撞即可

最终成功把最新镜像拉到手

记一次众测找源码到RCE

然后起一个容器,用docker cp命令把源码拉出来

记一次众测找源码到RCE

源码审计

先看一手第三方jar包,fastjson赫然在列,版本在可用范围内

记一次众测找源码到RCE

定位代码用到的地方:

记一次众测找源码到RCE


dns探测一下:

记一次众测找源码到RCE

root权限很舒服。(这个接口十分隐秘,黑盒测感觉根本测不出来)

还有前面说的jwt问题,刚开始就想到是弱secret,但没有爆破,后面翻了源码还真是,六字符而且跟系统命名有关,直接伪造token,变身超级管理员。

还有xxe等一些问题,不一一细说

总结

对于识别vue/react的一些现代化系统,可以尝试js里面定位关键词,还有github搜docker镜像服务账号口令泄露也是一个不错的思路

扫描关注乌云安全

记一次众测找源码到RCE

觉得不错点个“赞”、“在看”哦记一次众测找源码到RCE

本文始发于微信公众号(乌雲安全):记一次众测找源码到RCE

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: