Zip Slip ezali vulnérabilité moko ya makasi oyo epalangani mingi na processus ya extraction ya archive, epesaka ba attaquants nzela ya kokoma fichier nionso na système. Na momeseno, yango esalaka ete RCE (Exécution ya Code à distance) ezala . Vulnérabilité yango ezwamaki mpe ebimisamaki na mokumba na ekipi ya Snyk Security liboso ete esalama na bato nyonso na mokolo ya 5 Yuni 2018. Likambo yango etali bankóto ya misala, bakisa mpe oyo ezali ya bakompanyi minene lokola HP, Amazon, Apache, Pivotal, mpe mingi mosusu.
Zip Slip esalemi na nzela ya ba archives oyo esalemi spécialement na ba kombo ya ba fichiers oyo ezali na traversal ya répertoire (eg, ../../evil.sh)
. Vulnérabilité oyo ekoki kosalema na ba formats ya archive ebele, lokola tar, ghz, jar, war, cpio, apk, rar, na 7z.
Moboko ya vulnérabilité oyo ezali traversal ya répertoire, esika attaquant akoki ko accéder na ba parties ya ba fichiers ya système libanda ya dossier cible. Na nsima, moto oyo azali kobundisa akoki koboya fisyé oyo ekoki kosalama mpe kosala yango na mosika, to kozela ete système to mosaleli abenga fisyé yango, mpo bákoka kosala mitindo na masini ya moto oyo azwi mpasi. En plus, vulnérabilité oyo ekoki pe kosala ba dégâts na ko koma likolo ya ba fichiers ya configuration to ba ressources misusu ya sensibles, pe ekoki ko exploité ezala na machine ya usager pe na serveur.
Kali ini untuk mempelajari cara exploit ZIP Slip Vulnérabilité nya memakai aplikasi android yang sengaja rentan dibuat untuk praktikum ini.
Ini adalah aplikasi seperti Google Maps tetapi untuk menambahkan cartes local kita harus mentélécharger ressource nya dengan cara cliquez bouton + di layar.
Tetapi sebelum kita analyse Flux dari cara kerja apk ini kita harus memakai apk Burpsite. Untuk yang belum tau apk Burpsite adalah aplikasi yang digunakan untuk menguji keamanan aplikasi web dan mobile. Alat ini berfungsi untuk mendeteksi kerentanan, menganalisis, dan mengatasi masalah keamanan .
Anda bisa mendownload Bisaleli nya dengan Cliquez Lien dibawah ini:
https://portswigger.net/burp/kozwa ya lisanga
Berikut adalah hasil Intercept ketika kita mau menambahkan cartes nya, dan bisa di analyse kalau apk ini rentan karena permintaan API nya masih memakai protocole HTTP tidak menggunakan HTTPS yang dimana memungkinkan Attaqueur tidak hanya bisa melihat trafic yang di kirim dan diterima,Tetapi juga bisa manipuler/ memodifikasi kosenga dan eyano nya secara Makomi ya polele.
Dan fakta nya bahwa ketika masih memakai HTTP dapat membuka seluruh esika permukaan serangan, Contohnya jenis serangan yang sedang kita buat ini.
Bisa dilihat juga menggunakan Outils JADX untuk melakukan Ingénierie inverse yang dimana kita bisa melakukan analyse statique pada sebuah aplikasi memungkinkan penyerang untuk memahami struktur dan logika aplikasi.
Setelah di analyse di fisyé network_security_config.xml
aplikasi membuat konfigurasi cleartextTrafficPermitted="true"
. Sehingga konfigurasi ini mengizinkan texte clair trafic di setiap permintaan untuk domaine yang diizinkan. Tetapi apakah domaine ini benar-benar digunakan untuk Effacer texteTraffic tersebut. Bisa saja ini dibuat hanya untuk pengujian / tidak digunakan dalam production.
ini adalah Hasil intercepter ketika kita mentélécharger cartes nya yang dimana dia mengambil fichier ZIP format dengan .ghz
Dan mencoba mentélécharger fichier .ghz secara manuel dengan copas di ordinateur portable. Berikut adalah isi fisyé ZIP tersebut.
Untuk mengetahui lokasi data yang di unzip oleh aplikasi kita bisa gunakan komande find / | grep australia oceania_nauru.map
di adb coquille mobile émulateur nya dan pastikan juga kalau kita sudah memiliki na nzela ya misisa di emulatornya.
Bisa dilihat kalau nzela file yang di kofungola ada di :
/data/media/0/Android/data/io.hextree.pocketmaps/files/Download/pocketmaps/maps/
Ini juga menunjukkan kepada kita bahwa aplikasi benar-benar meng-kofungola fisyé map nya.
Mari kita lihat lebih dekat pada dossier arbitraire kokoma Vulnérabilité dalam aplikasi nya, Seperti yang sudah kita ketahui likambo nya terkait dengan Fichier ZIP Cartes Manipulation. Lakukan lagi analyse statique dengan mencari mot clé: ZipEntry
agar mengetahui classe kode nya meng-fichier ya poignée ZIP mapnya.
Sebelum kita analyse lebih dalam code nya, saya akan mengikuti panduan dari snyk ekipi 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/vulnérabilité-zip-slip
Penjelasan: Bato ya mayele:
Kode berikut rentan terhadap serangan zip slip karena tidak melakukan validasi yang memadai terhadap jalur fichier dalam arsip zip sebelum mengekstraknya. Di sini, e.getName()
dapat mengembalikan moto fisyé dengan jalur relatif yang berbahaya, seperti ../../malicious.sh
. Ini berarti dossier tersebut bisa diekstrak di luar destinationDir
yang ditentukan.
InputStream input = zip.getInputStream(e); IOUtils.copy(input, write(f));
Setelah dossier dibuat, konten fichier langsung disalin tanpa memeriksa jalur keluaran apakah sudah aman atau tidak. Jika jalur tersebut menuju ke lokasi berbahaya, seperti direktori misisa sistem atau dossier lain yang seharusnya tidak dapat diakses oleh aplikasi, itu bisa sangat berbahaya.
Karena kita sudah mengetahui kode yang rentan sesuai panduan mari kita analyse code di apk nya:
Nzela ya Pembuatan Tanpa Validasi:
String str3 = file.getAbsolutePath() + File.separator + nextEntry.getName();
Di sini, fisyé jalur ( str3
) dibuat dengan nzela ya menggabungkan dari direktori tujuan ( file.getAbsolutePath()
) dengan nama bokoti zip ( nextEntry.getName()
). Namun, nextEntry.getName()
bisa berisi elemen nzela berbahaya seperti ../../
, yang dapat menyebabkan fisyé diekstrak di luar direktori yang dimaksud ( file
).
Setelah nzela dibuat, fisyé atau direktori dibuat langsung:
if (nextEntry.isDirectory()) { new File(str3).mkdir(); } else { e(zipInputStream, str3, eVar, "" + i3 + " Unzipping " + str2, size, null); }
Ini membuat atau menulis fichier tanpa memastikan bahwa str3
adalah jalur yang aman.
Untuk di tahap ini saya menyiapkan 2 hal untuk environnement serangan nya: Nazali na posa ya koyebisa bino.
Configuration Dynamique HTTP Environnement de mocking : extension HTTP Mock dari burpsuite ini dapat mengubah réponse asli dari aplikasinya dengan mibeko ya mencocokkan yang sudah kita kirimkan dari http history
maupun input manual
. Pada contoh dibawah ini saya merubah eyano nya dengan memilih Redirection na URL, sehingga setiap eyano aplikasi secara na tango ya solo akan mengambil eyano dari HTTP Mock.
2. Configuration Environnement ya Serveur local : Karena setiap demande dari aturan yang kita cocokkan redirect ke serveur local ya mabe jadi kita buat untuk zip nya ya mabe:
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)
Pourquoi ozali autorité na sécurité numérique?
Kosala makambo ya mabe na Internet ezali ntango nyonso kobongwana. Nini ya sika na mokili ya Cybercrime oyo communauté ya HackerNoon ekokaki koyeba na bitumba na ba fraudes numériques?
Ba Trojans, ba malware, ba spyware, mpe mingi mosusu. Nini ezali scoop na ba bugs ya sika oyo ekoki kozala ko infecter ba PC na biso ya bolingo mpe kozua info na biso? Kasi, esuka kaka wana te; toyeba ba cyber mabe mosusu nini ezali libanda!
Ndenge nini ozali ko naviguer ba technologies ya sika na ba vulnérabilités? Ba ndako ya mayele, AI, mpe Internet ya biloko ezali na ba vulnérabilités na yango.
Svp sala makasi olongola ba informations nionso oyo ezali likolo avant ya kokoma pe kotinda projet na yo. Matondi!