Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Analisis contoh kerentanan log masuk pengguna sewenang-wenangnya Gogs

Analisis contoh kerentanan log masuk pengguna sewenang-wenangnya Gogs

王林
王林ke hadapan
2023-05-11 16:43:062381semak imbas

1. Latar belakang Kerentanan

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.

2. Perihalan kerentanan

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.

3. Versi yang terjejas

Versi yang terjejas adalah seperti berikut:

Gogs 0.11.66 dan versi sebelumnya

4 🎜 > (1) Gunakan docker mesin maya ubuntu untuk mengklonkan persekitaran gogs pada vulhub

(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.

Analisis contoh kerentanan log masuk pengguna sewenang-wenangnya Gogs

Analisis contoh kerentanan log masuk pengguna sewenang-wenangnya Gogs (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".

Analisis contoh kerentanan log masuk pengguna sewenang-wenangnya Gogs (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 EksploitasiAnalisis contoh kerentanan log masuk pengguna sewenang-wenangnya Gogs

Pertama sekali, untuk setiap pengguna, kami boleh membuat gudang dan memuat naik mana-mana fail dengan kandungan yang boleh dikawal melalui fungsi keluaran, dengan itu memalsukan sesi untuk kami Fail menyediakan syarat.

Melalui fungsi explore, kami boleh menemui banyak gudang pengguna Memasuki halaman maklumat pengguna, kami boleh mendapatkan semua maklumat (uid, nama pengguna) yang diperlukan untuk bina sesi pengguna.

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. Analisis contoh kerentanan log masuk pengguna sewenang-wenangnya Gogs

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. Analisis contoh kerentanan log masuk pengguna sewenang-wenangnya Gogs

Struktur direktori bagi gog yang dikonfigurasikan lalai dan fail keluaran ialah lampiran/fid[0]/fid[1]/fid. Struktur direktori tempat sesi disimpan ialah sessions/sid[0]/sid[1]/sid. Selain itu, folder sesi dan lampiran disimpan dalam folder data yang sama.

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. Analisis contoh kerentanan log masuk pengguna sewenang-wenangnya Gogs

6. Cadangan pembaikan

Gogs boleh dimuat turun dan disusun daripada Github dalam cawangan yang dibangunkan, di mana kelemahan ini telah diperbaiki, atau anda boleh meningkatkan kepada versi terkini Gogs.

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!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Artikel sebelumnya:Apakah maksud shell rebound?Artikel seterusnya:Apakah maksud shell rebound?