Pengenalan Projek 0x0
Alamat Projek: https://github.com/Piwigo/Piwigo
Pengenalan Projek: piwigo ialah studio foto sumber terbuka untuk perisian Internet. Direka untuk organisasi, pasukan dan individu untuk mengurus pustaka foto anda.
Alamat laman web rasmi: piwigo.org
Muat turun di bawah Linux https://github.com/Piwigo/Piwigo/archive / 2.9.5.zip nyahmampat, memperkasakan, masukkan direktori dan gunakan docker untuk memasang:
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
untuk melihat antara muka permulaan
Suntikan parameter pemilihan dan induk dalam admin/group_perm.php:
Nilai pemilihan dimasukkan ke dalam fungsi move_categories tanpa pengesahan
Menjejaki fungsi move_categories, anda boleh melihat bahawa fungsi itu menguraikan nilai dan menyambungkannya terus ke pernyataan sql
Anda boleh mencari kelemahan selepas ujian
Suntikan SQL kedua bagi parameter group_selection dalam admin/group_list.php:
Seperti yang anda lihat dalam gambar, nilai group_selection dimasukkan ke dalam $groups , nilai selectAction dimasukkan ke dalam $action
Dalam kod, $action sepadan dengan berbilang tindakan, tetapi dalam berbilang tindakan, $group ialah terikat secara langsung dengan sql Dalam pernyataan itu, izinkan saya melihat kaedah padam di sini:
Di sini adalah sangat intuitif untuk melihat bahawa ia dimasukkan ke dalam pernyataan sql. Cubalah
Suntikan SQL parameter cat_false dalam admin/user_perm.php:
Anda boleh lihat dalam gambar bahawa cat_false dimasukkan ke dalam fungsi,
Kami mengesan fungsi ini dan mencari fungsi dalam admin/include/functions.php sama ada tatasusunan dan menilai kuantiti, ia dimasukkan ke dalam fungsi get_uppercat_ids untuk diproses ,
Teruskan mengesan fungsi get_uppercat_ids Parameter dengan kerentanan di atas menjadi $cat_ids. Anda boleh melihat dalam rajah bahawa $cat_ids dimasukkan ke dalam pernyataan sql selepas penghakiman mudah dan pertanyaan bermula ,
Fungsi mudah terjejas ini mempunyai banyak. melompat, dan tiada tempat yang jelas untuk melihat gema Situasi ini amat sesuai untuk suntikan masa Kami menggunakan
1 and if(ascii(substr(database(),1,1))>97,1,sleep(5))
Pengesahan boleh menemui kelewatan dalam membuka halaman web, membuktikan kewujudan kelemahan. Gunakan sqlmap untuk menjalankan gelombang
Empat kelemahan SQL admin dalam /group_perm.php:
Kerentanan ini adalah sama seperti tiga kelemahan admin/user_perm.php di atas Fungsi yang sama dipanggil, tetapi perbezaan antara pengguna dan kumpulan adalah seperti yang ditunjukkan dalam rajah masuk:
sqlmap run
lima admin/ Suntikan parameter filter_category dalam batch_manager.php: Mari lihat kod khusus:
Apabila kekunci 'filter_category_use' wujud dalam pakej pos, tetapkan nilai 'filter_category' kepada xx['category']
Turun dan cari di mana xx['category'] dipanggil. Anda boleh melihat bahawa nilai diletakkan terus ke dalam pernyataan sql tanpa ditapis.
Perlu diingat bahawa pautan permintaan ini tidak ditemui dalam halaman web dan perlu ditambah secara manual dalam pakej pos filter_category_use=on&filter_category=1
Jalankan sqlmap
Atas ialah kandungan terperinci Apakah lima suntikan sql piwigo v2.9.5?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!