Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Contoh analisis peristiwa kebolehkesanan yang dimuat naik webshell

Contoh analisis peristiwa kebolehkesanan yang dimuat naik webshell

王林
王林ke hadapan
2023-05-12 14:43:061004semak imbas

Pemeriksaan dan pemeriksaan

Pertama sekali, saya faham bahawa apa yang saya perlu lakukan adalah untuk tidak mencari di mana lokasi yang dimuat naik saya harus log masuk ke pelayan untuk melakukan pemeriksaan dan pemeriksaan webshel lihat jika Adakah ia telah diceroboh oleh orang lain, adakah terdapat pintu belakang, dsb. Walaupun alamat IP yang dilaporkan ialah alamat IP syarikat kami, jika beberapa cangkang web terlepas dan berjaya dimuat naik oleh orang lain tetapi tidak dikesan, apakah yang boleh kami lakukan jika pelayan diceroboh? Jadi saya pergi untuk memeriksa pelayan, memuat naik alat pembunuh webshell ini untuk membunuh, menggunakan netstat -anpt dan iptables -L untuk menentukan sama ada terdapat pintu belakang yang ditubuhkan, menyemak sama ada terdapat program perlombongan yang menduduki CPU, dll., Saya akan tidak pergi ke butiran di sini. Nasib baik, pelayan tidak terjejas, dan saya mula berfikir tentang apa yang berlaku pada titik muat naik ini.

Semakan Kerentanan Muat Naik Fail

Pertama sekali, saya bertanya kepada pembangun yang menghubungi saya tentang alamat pelayan ini yang dibuka kepada orang ramai Setelah mendapat alamat, saya membukanya dan mendapati bahawa apa yang kelihatan biasa adalah yang saya uji baru-baru ini? Pada masa ini, saya berasa sedikit keliru, dan saya berhadapan dengan pembangun tentang maklumat pembetulan Selepas ujian terakhir, saya mendapati tempat muat naik menggunakan sekatan senarai putih, yang hanya membenarkan muat naik jpeg, png dan format imej lain. Pada masa itu, saya juga mendapati bahawa walaupun muat naik itu dihadkan oleh senarai putih, nombor rawak telah ditambahkan pada nama fail yang dimuat naik, dan peraturan masa telah dipadankan, saya masih menemui laluan muat naik dan nama fail dalam pakej pemulangan Ini adalah berbeza daripada yang lain Adalah dicadangkan bahawa pembetulan dijalankan, jika tidak, ini akan menyebabkan fail itu mengandungi kelemahan.

Pengekodan akhiran fail dipintas

Selepas membincangkan dan menyemak isu terakhir yang diperbetulkan, saya menjelaskan pemikiran saya. Kemudian saya log masuk ke laman web untuk menyemak sebabnya Kerana laman web hanya mempunyai satu tempat untuk memuat naik gambar, saya cuba menangkap paket tersebut Selepas menggunakan pengulang untuk memainkan semula pakej, saya mendapati pakej yang dikembalikan tidak mengembalikan muat naik fail Lalu saya mencuba pelbagai lencongan tetapi hasilnya tidak bagus. Akhirnya, saya tidak dapat apa-apa keputusan selepas berfikir keras, dan kemudian saya bertanya kepada platform awan apakah sebab penggera yang diberikan kepada mereka. Selepas membaca hasil maklum balas daripada platform awan, saya mendapati bahawa terdapat kod imej Ini bukan masalah besar Fail yang dimuat naik tidak mempunyai kebenaran pelaksanaan, dan laluan fail tidak dikembalikan secara rawak. tetapi kenapa jsp ini berjaya dimuat naik Okey, ini membuatkan saya hairan.

Apabila saya melihat dengan teliti pada data webshel ​​yang disediakan oleh platform awan, saya perhatikan dengan teliti bahawa nama fail menggunakan pengekodan base64 saya sangat keliru tentang perkara ini sudah membuat fungsi rawak? Kali terakhir Tiada pengekodan dilakukan semasa ujian. Saya tiba-tiba memikirkan kunci kepada masalah itu, dan kemudian menggunakan modul penyahkod burpsuite untuk base64 mengekod nama fail "1.jsp" ke dalam "MS5Kc1A=", dan kemudian menghantar kod status maklum balas yang berjaya 200, bukannya muat naik ini kod status maklum balas kegagalan ralat 500 .

Jadi, masalahnya ialah semasa proses pembetulan, pembangun menggunakan pengekodan base64 untuk nama fail, yang menyebabkan nama fail menjadi base64 dinyahkod semasa proses penyimpanan, dan apabila saya memuat naik fail, saya menukar akhiran .jsp juga dikodkan base64, dan .jsp berjaya dinyahkodkan semasa proses penyimpanan Pasukan R&D tidak mengenakan sebarang sekatan senarai putih selepas penyahkodan. Sebenarnya, perubahan pengekodan seperti ini tidak diperlukan Lagipun, nombor rawak telah digunakan untuk menukar nama fail, dan pengekodan lanjut agak berlebihan Inilah sebabnya menukar pepijat program menyebabkan lebih banyak pepijat.

Atas ialah kandungan terperinci Contoh analisis peristiwa kebolehkesanan yang dimuat naik webshell. 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