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
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
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:
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!