Syarat serangan untuk kerentanan keselamatan ZipperDown:
1 Apl menggunakan ZipArchive
2 Proses penghantaran pakej zip tertentu yang dikeluarkan oleh Apl tidak disulitkan, dan zip pakej juga tidak disulitkan.
3 Apl menggunakan JSPatch atau enjin pelaksanaan lain, dan skrip tempatan tidak disulitkan selagi ia diletakkan dalam direktori yang ditentukan, dan kesahihannya skrip tempatan tidak disahkan
4 Pengguna Sambung ke tempat liputan WIFI yang tidak boleh dipercayai untuk komunikasi rangkaian
Kaedah untuk memintas kaedah pemintasan ini sendiri:
1. Baiki pustaka SSZipArchive Dalam fungsi penyahmampatan unzipFileAtPath, mungkin terdapat Intercept rentetan "../" semasa melintasi direktori.
2 Apabila pelanggan berkomunikasi dengan pelayan, gunakan protokol penghantaran selamat HTTPS untuk memastikan bahawa data dalam interaksi antara APP dan pelayan disulitkan oleh protokol HTTPS
3 . Muat turun zip APP Fail pakej disulitkan dan dilindungi semasa penghantaran, dan integriti dan kesahihan pakej zip disahkan pada klien untuk mengelakkannya daripada diganti
4 dalam APP dan menyulitkan skrip setempat Sahkan integriti dan kesahihan untuk mengelakkan penggantian; bergantung terutamanya pada Apl tertentu dan kebenaran yang diperolehinya, dan kerentanan serupa "Kerentanan Traversal Direktori Fail" juga ditemui pada platform Android
Berkenaan kerentanan traversal direktori fail, premis untuk kerentanan berlaku: Gunakan penyahmampatan dalam Fail aplikasi Android, seperti mekanisme pemuatan dinamik, muat turun apk/zip, dan kemudian nyahmampatkannya secara setempat
Sebab kerentanan
Kerana ZipOutputStream; class tidak mengenakan sebarang sekatan pada nama fail semasa memampatkan fail Jika pakej zip yang dimuat turun dipintas dan diubah suai secara berniat jahat, nama fail boleh dinamakan "../../../../data/data/xxx. .xxx.x/xxx" kerana Android berasaskan Sistem Linux, dalam sistem Linux, simbol ../ mewakili kembali ke direktori atas, jadi anda boleh mendapatkan beberapa simbol lagi di sini, supaya anda akan kembali ke akar direktori sistem Android, dan kemudian masukkan direktori kotak pasir aplikasi semasa , tulis fail.
Risiko kerentanan ZipperDown
Melalui kerentanan ini, penyerang boleh memusnahkan data aplikasi, mendapatkan data peribadi pengguna, malah mendapat keupayaan untuk melaksanakan kod arbitrari.
Langkah pengelakan; Kaedah pemintasan sendiri oleh pembangun:
1 Apabila menyahmampat ZipEntry, tapis penyahmampatan fail dengan aksara khas atau nyahmampat kepada nama fail tempatan yang tidak boleh mengandungi aksara khas; >
2. Apabila pelanggan berkomunikasi dengan pelayan, gunakan protokol penghantaran selamat HTTPS untuk memastikan bahawa data dalam interaksi antara APP dan pelayan disulitkan oleh protokol HTTPS 3 zip APP Fail pakej disulitkan dan dilindungi semasa penghantaran, dan integriti dan kesahihan pakej zip disahkan pada klien untuk mengelakkannya daripada diganti; 🎜>1. Penyulitan Cinta menyediakan pelan penilaian untuk kerentanan ini untuk mengesan sama ada Apl mempunyai kerentanan ini 2. Gunakan SDK Penyulitan Protokol Komunikasi Penyulitan Ai untuk menyulitkan data semasa proses komunikasi dan memastikan bahawa data tidak diusik;Penyelesaian Keselamatan PenggunaJangan gunakan tempat liputan WIFI yang tidak diperakui dan kemas kini Apl pada telefon anda tepat pada masanya.
Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan kelemahan ZipperDown. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!