\ \
What is ZIP SLIP Vulnerability?Zip Slip is a serious vulnerability that is widespread in the archive extraction process, allowing attackers to write any file to the system. Typically, this results in RCE (Remote Code Execution). The vulnerability was discovered and responsibly disclosed by the Snyk Security team before it was made public on June 5, 2018. The issue affects thousands of projects, including those owned by major companies such as HP, Amazon, Apache, Pivotal, and many more.
\ Zip Slip is exploited through specially crafted archives with filenames that include directory traversal (e.g., ../../evil.sh). This vulnerability can occur in many archive formats, such as tar, ghz, jar, war, cpio, apk, rar, and 7z.
\ The core of this vulnerability is directory traversal, where an attacker can access parts of the system files outside the target folder. The attacker can then override the executable file and run it remotely, or wait for the system or user to call the file, so they can run commands on the victim's machine. In addition, this vulnerability can also cause damage by overwriting configuration files or other sensitive resources, and can be exploited both on the user's machine and on the server.
\
How To Exploit ZIP SlipKali 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 maps local kita harus mendownload resource nya dengan cara click button ==+== di layar.
\ 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 dan mobile. 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
\ 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 Attacker tidak hanya bisa melihat traffic yang di kirim dan diterima,Tetapi juga bisa manipulate/memodifikasi request dan response 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.
\
\ Bisa dilihat juga menggunakan Tools JADX untuk melakukan Reverse Engineering yang dimana kita bisa melakukan static analysis pada sebuah aplikasi memungkinkan penyerang untuk memahami struktur dan logika aplikasi.
\ Setelah di analysis di file network_security_config.xml aplikasi membuat konfigurasi cleartextTrafficPermitted="true". Sehingga konfigurasi ini mengizinkan clear text traffic di setiap permintaan untuk domain yang diizinkan. Tetapi apakah domain ini benar-benar digunakan untuk CleartextTraffic tersebut. 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 dengan format .ghz
\
\
\
\
Dan mencoba mendownload file .ghz secara manual dengan copas di laptop. Berikut adalah isi file ZIP tersebut.
\ Untuk mengetahui lokasi data yang di unzip oleh aplikasi kita bisa gunakan command find / | grep australia oceania_nauru.mapdi adb shell mobile emulator nya dan 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.
\ \
\
Vulnerability Analysis Stage\ Mari kita lihat lebih dekat pada arbitary file write Vulnerability dalam aplikasi nya, Seperti yang sudah kita ketahui issue nya terkait dengan File ZIP Maps Handling. Lakukan lagi static analysis dengan mencari keyword: 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
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 nama 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.
\ Karena kita sudah mengetahui kode yang rentan sesuai panduan mari kita analysis code di apk nya:
Pembuatan Path Tanpa Validasi:
Di sini, jalur file (str3) dibuat dengan menggabungkan path dari direktori tujuan (file.getAbsolutePath()) dengan nama entry zip (nextEntry.getName()). Namun, nextEntry.getName() bisa berisi elemen 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.
\
\
Exploitation StageUntuk di tahap ini saya menyiapkan 2 hal untuk environment serangan nya:
Setup Dynamic HTTP Mocking Environment: extension HTTP Mock dari burpsuite ini dapat mengubah response asli dari aplikasinya dengan mencocokkan rules yang sudah kita kirimkan dari http history maupun input manual. Pada contoh dibawah ini saya merubah response nya dengan memilih Redirect to URL, sehingga setiap response aplikasi secara real time akan mengambil response dari HTTP Mock.
\
Setup Local Server Environment: Karena setiap request dari aturan yang kita cocokkan redirect ke malicious local server jadi kita buat untuk malicious zip nya:
\ \ \ \ \ \ \ \ \ \ \ \
How did you get into Cybersecurity?Why are you an authority on digital security?
What is your expertise in this space?Cybercrime is constantly evolving. What’s new in the world of Cybercrime that the HackerNoon community could know about in the fight against digital fraudsters?
Are there any emerging Cybersecurity trends or threats that readers should look out for?Trojans, malware, spyware, and more. What’s the scoop on the latest bugs that could be infecting our beloved PCs and taking our info? It doesn’t stop there, though; let us know what other cyber evils are out there!
How do you keep yourself safe online?How are you navigating new technologies with vulnerabilities? Smart homes, AI, and the Internet of Things have their vulnerabilities.
Additional Thoughts\
Conclusion\
:::info Please make sure to delete all the information above before writing and submitting your draft. Thanks!
:::
\
All Rights Reserved. Copyright 2025, Central Coast Communications, Inc.