Dieser Artikel bietet Ihnen eine Einführung in häufige PHP-Schwachstellen in CTF (Bild- und Textzusammenfassung). Ich hoffe, dass er Ihnen weiterhilft .
Ich stoße normalerweise auf viele Fragen wie diese. Wenn man ein schlechtes Gedächtnis hat, vergisst man es leicht, also fasse ich sie zusammen, um mein Gedächtnis zu vertiefen! ! !
1. md5()-Schwachstelle, PHP verwendet „!=" oder „==" bei der Verarbeitung von Hash-Werten interpretiert jeden Hash-Wert, der mit „0E“ beginnt, als 0. Wenn also zwei verschiedene Passwörter gehasht werden, beginnen ihre Hash-Werte beide mit „0E“, dann PHP Sie werden als gleich betrachtet, beide sind 0.
Hier sind einige Beispiele, die nach der MD5-Verarbeitung mit 0e beginnen; >0e848240448830537924465865611904
Lass uns ein Experiment versuchen:
Das Ergebnis. . . Wie wir erwartet haben
Wenn die MD5-verschlüsselte Zeichenfolge kontrollierbar ist (dh die Eingabe kann kontrolliert werden), kann dies zu Sicherheitslücken führen! ! !
Interessanter ist natürlich, dass md5 nicht mit Arrays umgehen kann. Das Folgende ist ebenfalls ein Experiment:
Wir übergeben zwei verschiedene Arrays:
Sie werden das feststellen, obwohl es eine Warnung gibt , es kann immer noch umgangen werden (fügen Sie einfach das @-Symbol voran, wenn Sie keine Warnung wünschen):
Allerdings weiß ich nicht, was bei der Verarbeitung des Arrays zurückgegeben wird, also Probieren Sie es aus:
ist leer! ! ! Beachten Sie, dass bei der Verarbeitung eines Arrays ein NULL-Wert zurückgegeben wird.
beginnend mit 0 oder 0e Bypässe
Array
Solange nach der Verarbeitung durch die MD5-Funktion am Anfang keine Zahlen stehen, wird beispielsweise „c9f0f895fb98ab9159f51fd0297e236d“==0 erstellt! ! ! , wird verwendet, um Zeichenfolgen in Ganzzahlen umzuwandeln! ! ! Wenn am Anfang keine Zahl steht, kann sie nur in 0 umgewandelt werden! !
strcmp ( string$ str1, string $ str2);
Parameter str1 ist der erste String. str2 ist der zweite String. Wenn str1 kleiner als str2 ist, geben Sie 0 zurück. WennDas Folgende ist ein Beispiel für eine Frage, die mit BUGKU-Code geprüft wurde :
Wie in der Abbildung gezeigt, versuchen Sie je nach der Strcmp-Sicherheitsanfälligkeit, ein Array zu übergeben:
Die Übergabe des Arrays führt zu einem Strcmp-Fehler und einer Rückgabe , also wird es umgangen! ! !
Das obige ist der detaillierte Inhalt vonEinführung in häufige PHP-Schwachstellen in CTF (grafische Zusammenfassung). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!