


Eine ausführliche Analyse der Schwachstellen bei der Einbindung von PHP-Dateien
May 09, 2022 pm 05:30 PMDieser Artikel vermittelt Ihnen relevantes Wissen über PHP, in dem haupts?chlich verwandte Probleme zu Dateieinschluss-Schwachstellen vorgestellt werden. Der Grund für Dateieinschluss-Schwachstellen liegt darin, dass beim Einführen einer Datei über eine PHP-Funktion der Name der eingehenden Datei nicht angemessen überprüft wurde. Es wurden also unerwartete Dateien bearbeitet. Ich hoffe, dass dies für alle hilfreich sein wird.
Empfohlene Studie: ?PHP-Video-Tutorial“
Beschreibung der Sicherheitslücke
Der Grund für die Sicherheitslücke beim Einschlie?en von Dateien besteht darin, dass der Name der eingehenden Datei nicht richtig kalibriert wird, wenn eine Datei über eine PHP-Funktion eingeführt wird Daher werden unerwartete Dateien manipuliert, was zu unerwarteten Dateilecks oder sogar zur Einschleusung von Schadcode führen kann.
Die folgenden vier Funktionen verursachen in PHP normalerweise Schwachstellen beim Einbinden von Dateien:
1. Wenn include() zum Einschlie?en einer Datei verwendet wird, wird die Datei nur dann eingebunden, wenn der Code für die Funktion include() ausgeführt wird. Nur eine Warnung, weitermachen.
2. Die Funktion von include_once() ist dieselbe wie include(). Der Unterschied besteht darin, dass das Programm bei wiederholtem Aufruf derselben Datei diese nur einmal aufruft.
3. require() ruft die Datei sofort auf, sobald das Programm ausgeführt wird. Wenn ein Fehler auftritt, wird eine Fehlermeldung ausgegeben und das Skript beendet.
4. require_once() hat die gleiche Funktion wie require(. ). Der Unterschied besteht darin, dass das Programm bei wiederholtem Aufruf für dieselbe Datei nur einmal aufgerufen wird.
Gefahren der Schwachstelle
Ein Angreifer kann diese Schwachstelle ausnutzen, um beliebige Dateien zu lesen und an vertrauliche Informationen auf dem Server zu gelangen.
Schwachstelle betrifft Version
Das Vorhandensein dieser Schwachstelle hat nichts mit der Version zu tun
Schwachstellenanalyse
Wenn beim Senden eines POST-Datenpakets an PHP das Datenpaket einen Dateiblock enth?lt, egal ob Es liegt im Code, auf den Sie zugreifen oder nicht. Um die Logik des Datei-Uploads zu handhaben, speichert PHP diese Datei in einer tempor?ren Datei (normalerweise /tmp/php [6 zuf?llige Zeichen]), und der Dateiname ist in $_FILES zu finden Variable. Diese tempor?re Datei wird nach Abschluss der Anfrage gel?scht.
Da die phpinfo-Seite gleichzeitig alle Variablen im aktuellen Anforderungskontext ausgibt, k?nnen wir, wenn wir ein Datenpaket mit einem Dateiblock an die phpinfo-Seite senden, in der Rückgabe den Inhalt der Variablen $_FILES finden Paket, zu dem natürlich auch der tempor?re Dateiname geh?rt.
Wenn eine Dateieinbindungsschwachstelle keine ausnutzbare Datei finden kann, k?nnen Sie diese Methode verwenden, um den tempor?ren Dateinamen zu finden und ihn dann einzubinden.
Allerdings bestehen die Datei mit der Sicherheitslücke und die PHPInfo-Seite normalerweise aus zwei Seiten. Theoretisch müssen wir das Datenpaket zuerst an die PHPInfo-Seite senden, dann den tempor?ren Dateinamen von der zurückgegebenen Seite abgleichen und dann diesen Dateinamen an senden die Datei mit der Schwachstellenseite getshell. Am Ende der ersten Anfrage wird die tempor?re Datei gel?scht und die zweite Anfrage kann nicht einbezogen werden.
Zu diesem Zeitpunkt muss der bedingte Wettbewerb verwendet werden:
1) Senden Sie ein Upload-Datenpaket mit Webshell an phpinfo. Der Header, Get und andere Positionen dieses Datenpakets müssen mit Junk-Daten gefüllt sein.
2) phpinfo druckt zu diesem Zeitpunkt alle Daten aus und die Junk-Daten machen phpinfo sehr gro?.
3) Die Standardpuffergr??e von PHP betr?gt 4096, d. h. PHP gibt jedes Mal 4096 Bytes an die Socket-Verbindung zurück.
4) Daher bedienen wir den nativen Socket direkt und lesen jedes Mal 4096 Bytes. Solange die gelesenen Zeichen den tempor?ren Dateinamen enthalten, wird das zweite Datenpaket sofort gesendet.
5) Zu diesem Zeitpunkt ist die Socket-Verbindung des ersten Datenpakets noch nicht beendet, aber PHP gibt jedes Mal weiterhin 4096 Byte aus, sodass die tempor?re Datei nicht gel?scht wurde.
6) Wir k?nnen diesen Zeitunterschied nutzen, um die tempor?re Datei erfolgreich einzubinden und schlie?lich Getshell zu erhalten.
Umgebungseinrichtung
- Docker starten:
Dienst startet Docker - In dem Pfad ausführen, in dem sich die Datei docker-compose.yml befindet:
docker-compose build
docker-compose up -d
Wiederkehr der Sicherheitslücke
- Besuchen Sie http://your-ip:8080/phpinfo.php. Sie k?nnen sehen, dass die PHPInfo-Seite auf der Seite angezeigt wird
2. Besuchen Sie http://your-ip:8080/lfi.php?file=/. etc/passwd, Sie k?nnen sehen, dass diese Seite eine Sicherheitslücke beim Einschlie?en von Dateien aufweist.
POC-überprüfung:
Verwendung: Python3-PHP-Datei enth?lt vulnerability_poc.py --target-url http://192.168.60.244:8080
Reparaturvorschl?ge
Legen Sie eine Whitelist fest.
Empfohlenes Lernen: ?PHP-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonEine ausführliche Analyse der Schwachstellen bei der Einbindung von PHP-Dateien. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Benutzerspracheingabe wird erfasst und über die Mediarecorder-API des Front-End-JavaScript an das PHP-Backend gesendet. 2. PHP speichert das Audio als tempor?re Datei und ruft STTAPI (z. B. Google oder Baidu Voiceerkennung) auf, um sie in Text umzuwandeln. 3. PHP sendet den Text an einen KI -Dienst (wie OpenAigpt), um intelligente Antwort zu erhalten. 4. PHP ruft dann TTSAPI (wie Baidu oder Google Voice -Synthese) auf, um die Antwort in eine Sprachdatei umzuwandeln. 5. PHP streams die Sprachdatei zurück zum Spielen, um die Interaktion abzuschlie?en. Der gesamte Prozess wird von PHP dominiert, um eine nahtlose Verbindung zwischen allen Links zu gew?hrleisten.

Die Kernmethode zum Aufbau sozialer Freigabefunktionen in PHP besteht darin, dynamisch Freigabelinks zu generieren, die den Anforderungen jeder Plattform entsprechen. 1. Erhalten Sie zuerst die aktuelle Seite oder die angegebenen URL- und Artikelinformationen. 2. Verwenden Sie Urlencode, um die Parameter zu codieren. 3.. Splei? und generieren Teilenverbindungen gem?? den Protokollen jeder Plattform; 4. Zeigen Sie Links im vorderen Ende an, damit Benutzer klicken und freigeben k?nnen. 5. generieren Sie Dynamik OG -Tags auf der Seite, um die Anzeige der Freigabe inhaltlich zu optimieren. 6. Achten Sie darauf, dass Sie den Benutzereingaben entkommen, um XSS -Angriffe zu verhindern. Diese Methode erfordert keine komplexe Authentifizierung, weist nur geringe Wartungskosten auf und eignet sich für die meisten Anforderungen an den Inhaltsaustausch.

Um die Textfehlerkorrektur und die Syntaxoptimierung mit AI zu realisieren, müssen Sie die folgenden Schritte ausführen: 1. W?hlen Sie ein geeignetes AI -Modell oder ein geeignetes AI -Modell oder ein geeignetes AI -Modell wie Baidu, Tencent API oder Open Source NLP -Bibliothek aus; 2. Rufen Sie die API über die Curl oder das Guzzle von PHP auf und verarbeiten Sie die Rückgabeergebnisse. 3.. Informationen zur Fehlerkorrektur in der Anwendung anzeigen und erm?glichen den Benutzern, zu w?hlen, ob sie angenommen werden sollen. 4. Verwenden Sie PHP-L und PHP_CODESNIFFER für die Syntaxerkennung und -codeoptimierung. 5. sammeln Sie kontinuierlich Feedback und aktualisieren Sie das Modell oder die Regeln, um den Effekt zu verbessern. Konzentrieren Sie sich bei der Auswahl von AIAPI auf die Bewertung von Genauigkeit, Reaktionsgeschwindigkeit, Preis und Unterstützung für PHP. Die Codeoptimierung sollte den PSR -Spezifikationen folgen, Cache vernünftigerweise verwenden, zirkul?re Abfragen vermeiden, den Code regelm??ig überprüfen und x verwenden

1. Maximierung des kommerziellen Wertes des Kommentarsystems erfordert die Kombination der pr?zisen Lieferung native Werbung, benutzerbezahlte Wertsch?pfungsdienste (z. B. Bilder hochladen, Aufladungskommentare), den Incentive-Mechanismus basierend auf der Qualit?t der Kommentare und der Anonymen Daten Insight-Monetarisierung von Compliance; 2. Die Prüfungsstrategie sollte eine Kombination aus dynamischer Keyword-Filterung und Benutzerkennungsmechanismen vorab der Auditing einsetzen, die durch die Qualit?t der Kommentarqualit?t erg?nzt werden, um die hierarchische Inhaltsbelastung zu erreichen. 3. Die Anti-Pushing erfordert die Konstruktion einer mehrschichtigen Verteidigung: Recaptchav3 sensorlose überprüfung, Honeypot-Honeypot-Feldkennungroboter, IP und Zeitstempelfrequenzgrenze verhindert die Bew?sserung, und die Erkennung von Inhalten markiert verd?chtige Kommentare und st?ndig mit Angriffen.

PHP führt nicht direkt die KI-Image-Verarbeitung durch, sondern integriert sich über APIs, da es in der Webentwicklung und nicht in Bezug auf Computerintensive Aufgaben gut ist. Die API -Integration kann die professionelle Arbeitsteilung erreichen, die Kosten senken und die Effizienz verbessern. 2. Integration von Schlüsseltechnologien umfasst die Verwendung von Guzzle oder Curl zum Senden von HTTP-Anforderungen, JSON-Datencodierung und -decodierung, API-Schlüsselsicherheitsauthentifizierung, asynchroner Warteschlangenverarbeitungsaufgaben, robuster Fehlerbehebung und Wiederholungsmechanismus, Bildspeicherung und Anzeige. 3. Die gemeinsamen Herausforderungen sind API -Kosten au?er Kontrolle, unkontrollierbare Erzeugungsergebnisse, schlechte Benutzererfahrung, Sicherheitsrisiken und schwieriges Datenmanagement. In den Antwortstrategien werden Benutzerquoten und -darstellungen festgelegt, die Auswahl von ProPT-Anleitungen und mehrfizierende Auswahl, asynchrone Benachrichtigungen und Fortschrittsaufforderungen, wichtige Speicher- und Inhaltsprüfungen sowie Cloud-Speicher vorhanden.

PHP sorgt für die Inventarabzugsatomizit?t durch Datenbanktransaktionen und Forupdate -Reihenschl?sser, um eine hohe gleichzeitige überverl?ssigkeit zu verhindern. 2. Multi-Plattform-Inventarkonsistenz h?ngt von zentraler Verwaltung und ereignisgesteuerter Synchronisation ab, die API/Webhook-Benachrichtigungen und Nachrichtenwarteschlangen kombiniert, um eine zuverl?ssige Datenübertragung sicherzustellen. 3. Der Alarmmechanismus sollte in verschiedenen Szenarien niedrige Lagerbest?nde, Null/Negativ -Inventar, unerwünschte Verkaufszyklen, Nachschubzyklen und abnormale Schwankungsstrategien festlegen und die Auswahl von Dingtalk, SMS oder E -Mail -Verantwortlichen gem?? der Dringlichkeit ausw?hlen, und die Alarminformationen müssen vollst?ndig und frei sein, um die Anpassung und die Vergewaltigungsreaktion zu erreichen.

PhpisstillrelevantinMoDernEnterpriseEnvironments.1.ModerPhp (7.xand8.x) Angebote, strenge, jitkompilation und moderne Syntax, machte ma?geschneiderte Foreiglableforlarge-ScaleApplikationen

Die Kernrolle von Homebrew bei der Konstruktion der Mac -Umgebung besteht darin, die Installation und Verwaltung der Software zu vereinfachen. 1. Homebrew verarbeitet automatisch Abh?ngigkeiten und verkapselt komplexe Kompilierungs- und Installationsprozesse in einfache Befehle. 2. Bietet ein einheitliches Softwarepaket -?kosystem, um die Standardisierung des Software -Installationsorts und der Konfiguration zu gew?hrleisten. 3. Integriert Service -Management -Funktionen und kann Dienste leicht über Brewservices starten und stoppen. 4. Bequemes Software -Upgrade und -wartung und verbessert die Sicherheit und Funktionalit?t der Systeme.
