Java代审——nginxWebUI RCE
本文由
创作,已纳入「FreeBuf原创奖励计划」,未授权禁止转载
前言
前面分析了nginxWebUI项目的任意文件上传、任意文件删除、登录绕过等漏洞,这里集中RCE的漏洞分析学习~~~~
环境搭建
项目地址:
https://github.com/cym1102/nginxWebUI
这里使用docker进行项目部署,通过java -jar xxx.jar
的方式进行各种版本的启动
Dockerfile
如下:
FROM ubuntu
RUN sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list \
&& apt update \
&& apt -y install openjdk-11-jdk \
&& apt -y install nginx \
&& apt -y install wget \
&& apt -y install git \
&& apt -y install maven \
&& apt -y install vim
漏洞分析
Remote Command Execute
RCE1
跟进到com.cym.controller.adminPage.ConfController#check
方法中,其存在有命令执行的点:
其中存在有RuntimeUtil.execForStr
方法的调用,该方法为hutool组件的方法,最终调用了ProcessBuilder#start
方法进行命令执行
回到check
方法中,传入的参数cmd
由nginxExe / fileTemp / nginxDir
组成
其中,若调用过程中未传入参数,则对应的nginxExe / nginxDir
都是从settingService
这个Service层获取的
这里的nginxExe和nginxDir可控,可直接进行命令执行
进行bash反弹shell
监听端口:
请求check接口:
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
文章目录