Heim > Backend-Entwicklung > PHP-Tutorial > ThinkPHP < 5.0.24 Reparaturplan für hochriskante Sicherheitslücke bei Remotecodeausführung

ThinkPHP < 5.0.24 Reparaturplan für hochriskante Sicherheitslücke bei Remotecodeausführung

藏色散人
Freigeben: 2023-04-06 12:40:02
nach vorne
8549 Leute haben es durchsucht

Dieser Artikel stellt Ihnen hauptsächlich den Reparaturplan für die Sicherheitslücke mit hohem Risiko in ThinkPHP < 5.0.24 vor. Ich hoffe, dass er für Freunde in Not hilfreich sein wird!

ThinkPHP < 5.0.24 Reparaturplan für hochriskante Sicherheitslücke bei Remotecodeausführung

Beschreibung der Sicherheitslücke
Aufgrund von Fehlern in der Methodenverarbeitung der Request-Klasse des ThinkPHP5.0-Frameworks konstruieren Hacker Spezifische Anfragen können direkt an GetWebShell gestellt werden.

Schwachstellenbewertung
Kritisch

Betroffene Versionen
ThinkPHP 5.0 Series< 5.0.24

Sichere Version
ThinkPHP 5.0 Serie 5.0.24
ThinkPHP 5.1 Serie 5.1.31

Sicherheitsempfehlungen
ThinkPHP auf eine sichere Version aktualisieren

Reparaturmethode 1. Öffnen Sie

thinkphplibrarythinkRequest.php

Suchen Sie nach

public function method($method = false)
    {
        if (true === $method) {
            // 获取原始请求类型
            return $this->server(&#39;REQUEST_METHOD&#39;) ?: &#39;GET&#39;;
        } elseif (!$this->method) {
            if (isset($_POST[Config::get(&#39;var_method&#39;)])) {
                $this->method = strtoupper($_POST[Config::get(&#39;var_method&#39;)]);
                $this->{$this->method}($_POST);
            } elseif (isset($_SERVER[&#39;HTTP_X_HTTP_METHOD_OVERRIDE&#39;])) {
                $this->method = strtoupper($_SERVER[&#39;HTTP_X_HTTP_METHOD_OVERRIDE&#39;]);
            } else {
                $this->method = $this->server(&#39;REQUEST_METHOD&#39;) ?: &#39;GET&#39;;
            }
        }
        return $this->method;
    }
Nach dem Login kopieren

Ändern Sie zu:

public function method($method = false)
    {
        if (true === $method) {
            // 获取原始请求类型
            return $this->server(&#39;REQUEST_METHOD&#39;) ?: &#39;GET&#39;;
        } elseif (!$this->method) {
            if (isset($_POST[Config::get(&#39;var_method&#39;)])) {
                $method = strtoupper($_POST[Config::get(&#39;var_method&#39;)]);
                if (in_array($method, [&#39;GET&#39;, &#39;POST&#39;, &#39;DELETE&#39;, &#39;PUT&#39;, &#39;PATCH&#39;])) {
                    $this->method = $method;
                    $this->{$this->method}($_POST);
                } else {
                    $this->method = &#39;POST&#39;;
                }
                unset($_POST[Config::get(&#39;var_method&#39;)]);
            } elseif (isset($_SERVER[&#39;HTTP_X_HTTP_METHOD_OVERRIDE&#39;])) {
                $this->method = strtoupper($_SERVER[&#39;HTTP_X_HTTP_METHOD_OVERRIDE&#39;]);
            } else {
                $this->method = $this->server(&#39;REQUEST_METHOD&#39;) ?: &#39;GET&#39;;
            }
        }
        return $this->method;
    }
Nach dem Login kopieren

Speichern und overwrite Der Test ist korrekt und die Schwachstellenbehebung ist abgeschlossen.

Das obige ist der detaillierte Inhalt vonThinkPHP < 5.0.24 Reparaturplan für hochriskante Sicherheitslücke bei Remotecodeausführung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:aliyun.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage