Heim  >  Artikel  >  PHP-Framework  >  Die Sicherheitslücke bei der Erstellung willkürlicher Dateien in thinkphp6 tritt erneut auf

Die Sicherheitslücke bei der Erstellung willkürlicher Dateien in thinkphp6 tritt erneut auf

藏色散人
藏色散人nach vorne
2020-01-20 14:06:365292Durchsuche

01 Hintergrund

Kürzlich veröffentlichte QiAnXin einen Sicherheitsrisikohinweis zu einer Sicherheitslücke bei der „willkürlichen“ Dateierstellung in ThinkPHP 6.0. Als Reaktion darauf analysierte DYSRC die Sicherheitslücke sofort und reproduzierte die Sicherheitslücke erfolgreich.

Schwachstellenumfang: top-think/framework 6.x

02 Standortproblem

Basierend auf der Erstellung beliebiger Dateien und dem aktuellen Commit-Verlauf kann darauf geschlossen werden 1bbe75019 ist der Patch für dieses Problem. Es ist ersichtlich, dass der Patch die Sitzungs-ID darauf beschränkt, nur aus Buchstaben und Zahlen zu bestehen, was das Problem offensichtlicher macht.

Die Sicherheitslücke bei der Erstellung willkürlicher Dateien in thinkphp6 tritt erneut auf

03 Prinzipanalyse

Lassen Sie uns zunächst die oben genannten Probleme beiseite lassen und einen Blick darauf werfen, wie thinkphp Sitzungen speichert.

Das System definiert die Schnittstelle thinkcontractSessionHandlerInterface

Die Sicherheitslücke bei der Erstellung willkürlicher Dateien in thinkphp6 tritt erneut auf

Die Methode SessionHandlerInterface::write wird beim Lokalisieren von Sitzungsdaten ausgeführt und das System führt sie am Ende automatisch aus jede Anfrage umsetzen.

Sehen wir uns an, wie die thinksessiondriverFile-Klasse implementiert wird.

Die Sicherheitslücke bei der Erstellung willkürlicher Dateien in thinkphp6 tritt erneut auf

Generieren Sie zuerst den Dateinamen basierend auf $sessID über getFileName und schreiben Sie dann die Datei mit writeFile.

Folgen Sie getFileName und verketten Sie die eingehende $sessID direkt als Dateinamen. Da $sessID steuerbar ist, ist auch der Dateiname steuerbar.

Die Sicherheitslücke bei der Erstellung willkürlicher Dateien in thinkphp6 tritt erneut auf

04 Demonstration

An diesem Punkt ist der gesamte Schwachstellenprozess grundsätzlich klar. Die lokalen Demonstrationsergebnisse sind unten aufgeführt.

Die Sicherheitslücke bei der Erstellung willkürlicher Dateien in thinkphp6 tritt erneut auf

php Chinesische Website, eine große Anzahl kostenloser Thinkphp-Einführungs-Tutorials, willkommen zum Online-Lernen!

Das obige ist der detaillierte Inhalt vonDie Sicherheitslücke bei der Erstellung willkürlicher Dateien in thinkphp6 tritt erneut auf. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:斗鱼安全应急响应中心. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen