50 nuansa keamanan Drupal
- Untuk hashing kata sandi, versi modifikasi phpass digunakan , yang darinya mereka tidak diakui di situs web resmi. Tetapi mereka tidak terburu-buru untuk mengubah mekanisme [# 1845004] .
- Mereka bahkan tidak ingin memberikan opsi untuk memilih mekanisme hashing [# 2939888] .
- Jumlah iterasi untuk kegigihan hash belum diperbarui selama lebih dari 7 tahun [# 1850638] , meskipun iterasi diharapkan meningkat setidaknya 2 tahun [# 1203852] .
- Saat menggunakan PostgreSQL, hash kata sandi dibandingkan dengan huruf besar-kecil [# 2475539] .
- PostgreSQL juga memiliki masalah dukungan SSL [# 850600] .
- Versi minimum yang diijinkan dari PostgreSQL 9.2, yang telah lama tanpa dukungan keamanan [# 2846994] .
- Perakitan resmi Drupal berisi versi pustaka vendor yang kedaluwarsa (karena kompatibilitas dengan PHP 5.5). Beberapa dari mereka, misalnya Zend, bahkan telah mengetahui kerentanannya [# 2989631] .
- Juga dalam perakitan adalah semua pengujian, modul pengujian, topik pengujian, dan perpustakaan vendor untuk pengujian, yang tidak hanya meningkatkan ukuran arsip, tetapi juga area kemungkinan kesenjangan [# 2338671] .
- Gagasan untuk memindahkan file yang dapat dieksekusi di luar situs [# 1672986] juga terhenti .
- Memeriksa pembaruan diimplementasikan menggunakan permintaan GET menggunakan protokol HTTP tidak aman [# 1538118] . Selama serangan MITM, Anda dapat membuka semua tautan ke arsip modul (jumlah domain dan hash tidak dicentang). Anda juga dapat mengumpulkan informasi tentang komposisi situs, daftar pengembang dan aktivitas mereka (permintaan dari versi situs lokal akan cocok dengan ip dengan akun di d.org). Protokol HTTP memungkinkan Anda menempatkan skrip untuk mengumpulkan informasi di luar drupal.org.
- Seorang pengguna dengan id = 1 adalah objek paling enak untuk diserang, karena ia selalu memiliki semua izin yang ada di situs dan juga memiliki semua upaya untuk menghapus hak-hak ini [# 540008] .
- Perilaku ini tidak sepenuhnya jelas, karena secara visual di panel admin pengguna ini tidak berbeda dari yang lain. Tetapi bahkan upaya untuk menyorot fitur ini tidak menghasilkan apa-apa [# 572240] .
- Administrator atau pengguna lain dengan hak-hak yang diperlukan dapat mengendalikan pengguna ilahi ini dengan id = 1 [# 39636] .
- Hak-hak tertentu secara implisit memberi kendali atas seluruh situs, tetapi mereka juga tidak menonjol dengan cara apa pun [# 2846365] , [# 594412] .
- Beberapa hak mungkin menyesatkan bahkan dengan namanya. Misalnya, hak untuk melihat log sebenarnya memungkinkan Anda untuk menghapusnya [# 1635646] .
- Memulihkan pesanan dalam izin sudah lama menjadi tugas yang mendesak, tetapi itu hanya diabaikan [# 2628870] , [# 2667018] .
- Administrator tidak dapat menghapus objek file yang diunduh oleh pengguna lain, tidak peduli seberapa jahatnya ia [# 2949017] .
- Hook hook_file_download tidak menggunakan pengontrol yang sesuai selama validasi [# 2148353] .
- Validasi untuk file di sisi klien tidak berhasil [# 2938441] .
- Lemah memeriksa memuat file sewenang-wenang [# 2543590] , belum lagi segala macam lem RarJpeg.
- Beberapa pemeriksaan file hanya mengandalkan aturan .htaccess [# 2829048] .
- .Htaccess memiliki cukup aturan keamanan lain yang hilang secara implisit saat beralih ke lingkungan lain (terutama Nginx), tetapi penerapan aturan web.config yang sama telah terhenti [# 154339] , [# 2669870] .
- Secara default, di situs mana pun dengan Drupal 8, Anda dapat mengunggah gambar dengan permintaan POST sederhana, yang terdiri dari nama formulir pendaftaran dan bidang avatar pengguna. Perlu dicatat bahwa dalam Drupal 7 output dari bidang seperti itu ditolak secara default [# 31056] , tetapi hari-hari itu sudah berakhir.
- Saat memuat file dengan nama yang sama beberapa kali, muncul masalah terkait dengan penerapan algoritma untuk menghasilkan nama file unik [# 2684403] .
- Penyaringan alamat gambar juga timpang. Oleh karena itu, Anda dapat mengeluarkan pengguna dengan gambar dengan src = '/ user / logout' [# 144538] , atau mengimplementasikan serangan DOS dengan menempatkan beberapa ratus gambar dengan src = 'very / hard / page'.
- Cara lain untuk memakan sumber daya adalah dengan memuat gambar 1000x1 ke dalam bidang yang diproses menggunakan efek "Scale and crop" [# 2931533] , [# 872206] .
- Anda cukup mengisi database dengan cache sampah hanya dengan mengurutkan url [# 1245482] , meskipun sistem caching dengan sempurna menghilangkan semua sumber daya untuk menyimpan hasil yang akan lebih cepat bahkan dari awal [# 2888838] .
- Anda dapat memuat situs dan mengisi log dengan pesan kesalahan menggunakan permintaan khusus untuk tautan kontekstual [# 2864933] .
- Akses ke file dan gambar yang terlampir selalu ada, terlepas dari akses ke konten [# 2904842] .
- Komentar pada konten juga akan tetap tersedia ketika akses ke konten ditolak [# 1781766] .
- Anda dapat mengetahui apakah Anda dapat menggunakan Zaregan di situs melalui pesan untuk pemulihan kata sandi [# 1521996] .
- Formulir pengaturan ulang kata sandi tidak dilindungi dari banjir [# 1681832] .
- Saat membuat dan memeriksa kata sandi, tanpa peringatan apa pun, semua karakter spasi putih ("\ t \ n \ r \ 0 \ x0B") di sekitar [# 1921576] dihapus . Ini mungkin mengejutkan pengguna, dan sedikit melegakan untuk algoritma pencarian.
- Jika Anda tidak memiliki kesempatan untuk mendapatkan hash kata sandi untuk brute force, tetapi ada sesi pengguna, maka Anda dapat brute kata sandi tanpa batasan melalui akun itu sendiri, misalnya, mengubah kotak surat [# 2339399] .
- Ngomong-ngomong, jika itu, pengguna bahkan tidak tahu bahwa kotaknya telah diubah, karena upaya untuk mengimplementasikan fitur ini telah berhenti selama beberapa tahun [# 85494] .
- Algoritme pembuatan sesi juga begitu-begitu [# 2238561] .
- Cookie mengalir di antara situs yang terletak di subfolder [# 2515054] .
- Dalam beberapa kasus, Anda dapat memblokir pengguna dengan memanipulasi permintaan untuk memasukkan kata sandi yang salah [# 2449335] .
- Akses ke pengeditan Templat ranting memungkinkan Anda mendapatkan kendali tak terbatas atas situs [# 2860607] .
- Serangan XSS melalui atribut Twig [# 2567743] , [# 2552837] , [# 2544110] dengan keras kepala diabaikan .
- Anda juga dapat menanamkan XSS dalam file info. Misalnya, melalui deskripsi atau bidang paket, yang dapat menarik untuk dieksploitasi melalui fitur [# 846430] .
- Header keamanan Perlindungan X-XSS [# 2868150] tidak digunakan.
- XSS juga dapat didorong melalui metode rerouting kelas PlainTextOutput, meskipun nama kelas mengatakan sebaliknya [# 2896735] .
- Mungkin juga mengejutkan bahwa beberapa metode memeriksa dan menyimpan hak akses pengguna saat ini, dan bukan metode yang ditransfer ke mereka [# 2628870] , [# 2266809] .
- Karena pengaturan cache yang salah, Anda dapat membuatnya mustahil bagi pengguna untuk melihat profil mereka sendiri [# 2614230] . Trik serupa dapat dilakukan dengan pengaturan tertentu dengan konten [# 2982770] dan media [# 2889855] .
- Statistik tampilan materi dapat dengan mudah dimanipulasi melalui loop biasa untuk di browser, berliku ribuan tampilan per menit bahkan jika Anda tidak memiliki akses ke materi itu sendiri. Anda dapat menghasilkan bahan yang belum ada [# 2616330] .
- Validasi lumpuh dari url eksternal [# 2691099] , [# 2652236] .
- Tidak ada perlindungan penuh dari breachattack.com [# 2234243] .
- Jika Anda mengonfigurasi Kebijakan Keamanan Konten, maka editor konten jatuh [# 2789139] .
- Ini adalah pilihan amatir, tidak mengklaim apa pun. Mungkin seseorang tahu lubang yang lebih buruk? Dari 01/30/2019 hingga 10/15/2020, hadiah dari anggaran UE sebesar 89.000,00 € valid. Anda dapat mencoba memperbaiki sesuatu. Tetapi jika itu tidak berhasil, jangan putus asa, sopan santun proyek ini dilatih untuk dengan terampil bermanuver di antara tugas-tugas untuk menjaga Drupal di satu tempat selama bertahun-tahun.
Source: https://habr.com/ru/post/id437820/
All Articles