Rumah >Operasi dan penyelenggaraan >Keselamatan >Analisis contoh kerentanan log masuk pengguna sewenang-wenangnya Gogs
Gogs ialah sistem pengurusan fail/kod sumber terbuka (berdasarkan Git) yang serupa dengan GitHub Matlamat Gogs adalah untuk mencipta cara termudah, terpantas dan termudah untuk membina diri. perkhidmatan Git Serve. Dibangunkan dalam bahasa Go, Gogs boleh diedarkan sebagai binari kendiri dan menyokong semua platform yang disokong oleh bahasa Go, termasuk platform Linux, Mac OS X, Windows dan ARM.
gogs ialah platform perkhidmatan Git layan diri yang mudah dibina Ia mempunyai ciri-ciri pemasangan yang mudah, platform merentas, ringan dan ramai pengguna. Dalam versi 0.11.66 dan sebelumnya, (pustaka go-macaron/session) tidak mengesahkan sessionid Penyerang boleh menggunakan sessionid berniat jahat untuk membaca mana-mana fail, mengawal kandungan sesi dengan mengawal kandungan fail, dan kemudian log masuk ke. mana-mana akaun.
Versi yang terjejas adalah seperti berikut:
Gogs 0.11.66 dan versi sebelumnya
(2) Jalankan arahan berikut untuk memulakan gog: docker-compose up -d
(3) Selepas persekitaran dimulakan, akses http ://192.168.49.103:3000/install, anda boleh melihat halaman pemasangan. Semasa pemasangan, pilih pangkalan data sqlite dan dayakan fungsi pendaftaran.
(4) Gunakan siri Gob untuk menjana data fail sesi.
(5) Kemudian daftar akaun pengguna biasa, buat projek dan muat naik fail sesi yang baru dijana pada halaman "Versi Keluaran".
(6) Melalui URL lampiran ini, nama fail fail ini diketahui: ./attachments/2eb7f1a2-b5ec-482e-a297-15b625d24a10. Kemudian, bina Cookie: i_like_gogits=../attachments/2/e/2eb7f1a2-b5ec-482e-a297-15b625d24a10 Selepas mengakses, anda boleh mencari pengguna yang telah berjaya log masuk dengan id=1 (iaitu pentadbir akar)
5. Analisis Kerentanan dan Eksploitasi
Melalui kod file.go di atas, kami mendapati bahawa kandungan fail sesi ialah pengekodan Gob, menggunakan muatan untuk menjana sesi yang ditulis oleh P Niu.
Daripada ini, kami boleh menjana sesi, dan melalui fungsi muat naik keluaran yang tersedia untuk setiap pengguna, kami memuat naik sesi palsu kami ke pelayan.
Kerana gog akan membahagikan sesi dan membinanya ke laluan terakhir sebelum membacanya. Lampiran dan sesi berada dalam folder yang sama baru sahaja dimuat naik. Laluan fail, iaitu ../attachments/1/7/17f4120b-1a0d-416a-b0b0-def4342ded5b, fungsi yang membaca sesi menyelesaikan laluan ke sesi/././../attachments/ 1/7/17f4120b -1a0d-416a-b0b0-def4342ded5b ialah fail yang kami muat naik dan akhirnya melengkapkan log masuk mana-mana pengguna.
Atas ialah kandungan terperinci Analisis contoh kerentanan log masuk pengguna sewenang-wenangnya Gogs. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!