freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

Java代审学习——nginxWebUI
superLeeH 2024-11-01 22:09:55 204071
所属地 四川省

环境搭建

项目地址:

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版本的项目

项目结构和依赖分析

image-20241031223228988.png

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

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

image-20241031223527279.png

漏洞分析

任意文件上传

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

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

image-20241031224222946.png

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

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

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

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

ssh公钥Getshell

  1. 在攻击机中生成ssh公私钥对
    ssh-keygen -t rsa
    image-20241031230229352.png

  2. 进入/root/.ssh目录,将生成的公钥id_rsa.pub保存到文件authorized_keys,并通过目录穿越上传到被攻击端的/root/.ssh/文件夹下
    上传文件:
    image-20241031232511444.png
    上传文件后:
    image-20241031232714247.png
    成功通过目录穿越上传ssh公钥

  3. 最后可以直接在攻击机上进行ssh连接
    ssh -i id_rsa root@172.17.0.2

定时任务Getshell

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

可试读前30%内容
¥ 19.9 全文查看
9.9元开通FVIP会员
畅读付费文章
最低0.3元/天
# web安全 # 漏洞分析 # Java代码审计
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 superLeeH 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
superLeeH LV.5
这家伙太懒了,还未填写个人描述!
  • 50 文章数
  • 29 关注者
hutool组件下dynamic proxy和JDBC的部分可用链
2025-03-18
Vaadin组件下的新反序列化链寻找
2025-02-11
json组件下的原生反序列化getter触发
2025-01-13
文章目录