Heim > Artikel > Betrieb und Instandhaltung > Was sind die fünf SQL-Injektionen von Piwigo v2.9.5?
0x0 Projekteinführung
Projektadresse: https://github.com/Piwigo/Piwigo
Projekteinführung: piwigo ist eine Open-Source-Fotostudio-Software für das Internet. Entwickelt für Organisationen, Teams und Einzelpersonen zur Verwaltung Ihrer Fotobibliothek.
Offizielle Website-Adresse: piwigo.org
Download unter Linux https://github.com/Piwigo/Piwigo/archive/2.9.5.zip Entpacken, aktivieren, in das Verzeichnis eingeben und mit Docker installieren :
docker run -d --name piwigo_mysql -e MYSQL_DATABASE=piwigo -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7 docker run -d -p 3000:80 -v $(pwd)/:/var/www/html/ --link piwigo_mysql:mysql --name piwigo nimmis/apache-php5
Sie können die Startoberfläche sehen
Einfügung der Auswahl- und übergeordneten Parameter in admin/group_perm.php:
Auswahlwert wird ohne Überprüfung in die Funktion move_categories eingegeben
Wenn Sie die Funktion „move_categories“ verfolgen, können Sie sehen, dass die Funktion den Wert zerlegt und ihn direkt mit der SQL-Anweisung verbindet.
Sie können die Schwachstelle nach dem Testen des Parameters „group_selection“ in „admin/group_list“ finden .php existiert SQL-Injection:
Sie können im Bild sehen, dass der Wert „group_selection“ in $groups und der Wert „selectAction“ in $action eingefügt wird
Im Code entspricht $action mehreren Aktionen. aber in mehreren Aktionen Hier wird $group direkt in die SQL-Anweisung eingefügt:
Hier ist es sehr intuitiv zu sehen, dass es in die SQL-Anweisung eingefügt wird
三admin/ SQL-Injection des cat_false-Parameters in user_perm.php:Sie können im Bild sehen, dass cat_false in die Funktion eingefügt wird,
Wir verfolgen diese Funktion und finden die Funktion in admin/include/functions.php, Der Wert von $cat_false ändert sich in $category und wird zur Verarbeitung in die Funktion get_uppercat_ids eingefügt, nachdem beurteilt wurde, ob es sich um ein Array handelt und die Menge beurteilt wurde.
verfolgt weiterhin die Funktion get_uppercat_ids. Der Parameter mit der oben genannten Sicherheitsanfälligkeit ändert sich in $cat_ids. Nach einer einfachen Beurteilung wird cat_ids in die SQL-Anweisung eingefügt. Diese Art von anfälliger Funktion springt stark. und es gibt keinen offensichtlichen Ort, an dem das Echo zu sehen ist. Wir verwenden die
-Überprüfung, um die Existenz der Schwachstelle zu beweisen Vier SQL-Schwachstellen in admin/group_perm.php:Diese Schwachstelle ähnelt den oben genannten drei admin/user_perm. Die PHP-Schwachstellen sind gleich, die gleiche Funktion wird aufgerufen, der einzige Unterschied besteht darin Schauen Sie sich als Benutzer und Gruppe das Eintragsbild an, um zu verstehen: 1 and if(ascii(substr(database(),1,1))>97,1,sleep(5))
5 filter_category-Parameter in admin/batch_manager.php Vorhandene Injektion:
Sehen wir uns den spezifischen Code an:
Wenn der Schlüssel „filter_category_use“ im Post-Paket vorhanden ist, setzen Sie den Wert „filter_category“ auf xx['category'] Gehen Sie nach unten und suchen Sie xx['category'] Wo es heißt, können Sie sehen dass der Wert direkt in die SQL-Anweisung eingefügt wird, ohne gefiltert zu werden.Es ist zu beachten, dass dieser Anforderungslink nicht auf der Webseite zu finden ist und manuell im Post-Paket hinzugefügt werden mussfilter_category_use=on&filter_category=1
sqlmap und ausführen
Das obige ist der detaillierte Inhalt vonWas sind die fünf SQL-Injektionen von Piwigo v2.9.5?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!