Java代审学习——nginxWebUI

2024-11-08 6 0

环境搭建

项目地址:

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

这里搭建的是3.7.1版本的项目

项目结构和依赖分析

Java代审学习——nginxWebUI插图

结构比较简单,可以清晰的发现每个接口的路由,也就是在controller包下

可以使用MurphySec进行依赖安全扫描,当然版本比较老,存在很多第三方导致的漏洞问题,这里不分析对应的漏洞成因,仅仅分析项目本身导致的安全风险

Java代审学习——nginxWebUI插图1

漏洞分析

任意文件上传

在文件上传功能,也即是controller.adminPage.MainController这个控制器中存在有文件上传的实现方法upload(Context context, UploadedFile file)

其路由映射的路由为/adminPage/main/upload

Java代审学习——nginxWebUI插图2

该方法为自己实现的文件上传的逻辑

  1. 首先是未对文件的后缀等进行限制或过滤,导致能够上传脚本文件等等

  2. 其次未对上传文件的文件名进行检查及处理,直接将文件名同FileUtil.getTmpDir() + "/"拼接后创建一个新的文件,若存在恶意的文件上传行为,可能会导致以下问题

    1. 能够上传任意文件、任意内容到任意位置(需具备权限),例如可以上传脚本文件、覆盖已有文件、上传ssh公钥进行getshell、新增系统定时任务文件等等

ssh公钥Getshell

  1. 在攻击机中生成ssh公私钥对
    ssh-keygen -t rsa
    Java代审学习——nginxWebUI插图3

  2. 进入/root/.ssh目录,将生成的公钥id_rsa.pub保存到文件authorized_keys,并通过目录穿越上传到被攻击端的/root/.ssh/文件夹下
    上传文件:
    Java代审学习——nginxWebUI插图4
    上传文件后:
    Java代审学习——nginxWebUI插图5
    成功通过目录穿越上传ssh公钥

  3. 最后可以直接在攻击机上进行ssh连接
    ssh -i id_rsa [email protected]

定时任务Getshell

  1. 创建定时任务文件,文件内容如下:


4A评测 - 免责申明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。

不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。

本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。

侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)

相关文章

PyTorch库RPC框架反序列化RCE漏洞分析(CVE-2024-48063)
对抗性机器学习:安全威胁与防范措施
摄像头的隐秘安全危机:谁在悄悄监视你?
密码学中的加解密
[Meachines] [Medium] Compiled Git-RCE+Visual Studio 2019权限提升
守住数据安全的第一道防线——权限管理全解析

发布评论