Heim > Artikel > Betrieb und Instandhaltung > Website-Schwachstellenbehebung: Beispielanalyse für das Hochladen eines Webshell-Schwachstellenpatches
SINE Security führte eine Website-Schwachstellenerkennung und -behebung auf der Website eines Kunden durch und stellte fest, dass die Website schwerwiegende SQL-Injection-Schwachstellen und Schwachstellen in hochgeladenen Webshell-Website-Trojanerdateien aufwies. Die Website verwendete ein bestimmtes CMS-System und wurde mit der PHP-Sprache MySQL entwickelt Die Datenbankarchitektur und der Quellcode der Website sind derzeit Open Source.
Ein CMS ist ein soziales CMS-System, das sich auf die Bereitstellung bezahlten Wissens im aktuellen Internet konzentriert Dokumente können gegen eine Gebühr geteilt und heruntergeladen werden, und die von Benutzern veröffentlichten Wissensinhalte können ausgeblendet und zahlenden Kunden zum Lesen bereitgestellt werden. Der Code ist relativ schlank und bei Webmastern beliebt. Die Schwachstelle dieser Website tritt hauptsächlich auf, wenn das komprimierte Paket hochgeladen wird. Ein bösartiger Dekomprimierungscode wird erstellt, um die Webshell im ZIP-Paket in das angegebene Verzeichnis zu dekomprimieren, wodurch die Schwachstelle auftritt. Dieses CMS weist auch eine SQL-Injection-Schwachstelle auf. Lassen Sie uns die Schwachstellen einzeln aufschlüsseln.
Details zur SQL-Injection-Schwachstelle und Reparaturplan
Überprüfen Sie die Codedatenbank-Konfigurationsdatei der Website, stellen Sie sicher, dass die Datenbankverbindungsfunktion den PDO-Modus verwendet, und verfolgen Sie dann den Code sorgfältig Es wurde festgestellt, dass einige Escape-Operationen spezieller Symbole nicht auf eine umfassende Sicherheitsfilterung abgestimmt waren, was zu SQL-Injection-Angriffen führte. Der Code-Screenshot lautet wie folgt:
# 🎜 🎜#
Der obige Code verwendet die Select-Abfragefunktion. Durch eine detaillierte Überprüfung des Codes stellen wir fest, dass diese Funktion zum Verbinden der vom Front-End geschriebenen Werte verwendet wird Benutzer senden schädlichen Code an den Wert von id. Wir können den Wert von id mithilfe von IN, like und anderen SQL-Anweisungen überschreiben das Kontopasswort der Datenbank und ändern Sie die Datenbank. Um SQL-Injection-Schwachstellen zu beheben, ist es notwendig, die Eingabe illegaler Zeichen in GET-Anfragen und POST-Anfragen zu filtern. 'Semikolonfilterung – Filterung von %20 Sonderzeichen, Filterung von einfachen Anführungszeichen, %-Prozentzeichen und Filterung, Tabulatorschlüsselwert usw. Sicherheitsfilterung. Aktivieren Sie PHP Magic, um zu verhindern, dass einige illegale Parameter übertragen und erstellt werden. Webshell-Schwachstelle beim Hochladen der WebsiteDie Website steht kostenlos registrierten Benutzern offen und kann als normale Benutzer betrachtet werden. Dies wurde festgestellt Das Hochladen von Zip-Dateien wie doc erfordert eine Überprüfung, aber die Zip-Datei wird direkt in die Datenbank geschrieben. Wir überprüfen die oben entdeckte SQL-Injection-Sicherheitslücke und können die Dateiadresse sehen Reißverschluss. So laden Sie eine Webshell hoch, wir fragen das Administratorkonto und das Passwort des Website-Backends über die SQL-Injection-Sicherheitslücke ab, melden uns beim Website-Backend an, alle Funktionen des Backends sind nicht verfügbar. Beim Betrachten des Quellcodes habe ich jedoch einen Funktionscode gefunden, der die ZIP-Datei dekomprimieren kann. Anschließend werden wir Parameter erstellen, um direkt auf den dekomprimierten Code zuzugreifen Datei, posten Sie die Anfrage und senden Sie uns direkt die ZIP-Datei in die aktuelle Datei. Wir können unseren Webshell-Trojaner hochladen. Im Hinblick auf die Behebung der Website-Upload-Schwachstelle wird empfohlen, dass der Administrator die Dekomprimierungsfunktion deaktiviert oder die Berechtigungen der dekomprimierten Dateien festlegt. Unabhängig davon, ob der Administratorbenutzer über die Dekomprimierungsfunktion verfügt oder nicht Das Mitglied hat die Berechtigung, das Dokument zu dekomprimieren, eine angemessene und sichere Zuweisung von Berechtigungen vorzunehmen und dann skriptfreie Berechtigungen für das hochgeladene Verzeichnis festzulegen, um die Ausführung der Webshell-Trojaner-Hintertür zu verhindern. Wenn Sie mit der Reparatur von Website-Schwachstellen nicht vertraut sind, wird empfohlen, ein professionelles Website-Sicherheitsunternehmen zu finden, das Ihnen bei der Behebung von Website-Schwachstellen hilft. In China sind Sinesafe, Green Alliance, Venus Star und andere Sicherheitsunternehmen professioneller.Das obige ist der detaillierte Inhalt vonWebsite-Schwachstellenbehebung: Beispielanalyse für das Hochladen eines Webshell-Schwachstellenpatches. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!