Jika seorang hacker mengubah blog_charset ke UTF-7 apakah itu membuat WordPress rentan terhadap serangan lebih lanjut?

19

Saya punya klien yang diretas baru-baru ini dan saya perhatikan ada karakter aneh yang muncul di situsnya, seperti  dan Æ. Ternyata para peretas mengubah blog_charset menjadi UTF-7 dalam wp_optionstabel di dalam basis data. Saya mengaturnya kembali ke UTF-8, tetapi saya bertanya-tanya apakah selama waktu itu diatur ke UTF-7, dapatkah itu menciptakan kerentanan keamanan?

Saya melakukan pencarian dan menemukan dulu ada kerentanan WordPress UTF-7 yang diperbaiki pada versi 2.0.6 . Kami menjalankan WordPress versi terbaru, jadi mereka tidak bisa menggunakan exploit itu, tetapi adakah eksploit lain yang terkait dengan UTF-7? Sungguh, adakah alasan para peretas untuk mengubah blog_charset selain menjadi menyebalkan? Saya sudah mencoba menentukan bagaimana mereka masuk dan saya bertanya-tanya apakah ini terhubung entah bagaimana.

Jennette
sumber

Jawaban:

23

<dan >dikodekan sebagai +ADw-dan +AD4-dalam UTF-7 . Sekarang bayangkan yang berikut ini:

  1. Seseorang mengirim +ADw-script+AD4-alert(+ACI-Hello+ACI-)+ADw-/script+AD4-sebagai teks komentar. Itu akan melewati semua sanitasi tanpa hambatan.

  2. Basis data mengharapkan dan memperlakukan semua data yang masuk sebagai UTF-8. Karena semua stream UTF-7 juga valid UTF-8, ini tidak akan menghasilkan kesalahan SQL, dan mysql_real_escapeatau htmlspecialcharstidak akan menyentuhnya.

  3. WordPress mengirimkan tajuk text/html;charset=utf-7.

  4. WordPress menampilkan komentar, mengharapkan data yang keluar. Tetapi karena ini diperlakukan sebagai UTF-7 oleh browser, JavaScript akan dieksekusi.

Jadi, ya, ini masalah keamanan.

UTF-7 tidak didukung oleh semua browser, sebagian besar akan membuat teks sebagai Windows-1252 (atau apa pun pengkodean default pada OS mereka) atau sebagai UTF-8. Masalah utama adalah: melarikan diri tidak akan berfungsi lagi.


Mengubah nilai pengkodean kembali bukanlah solusi. Pengunjung biasa tidak akan pernah bisa mengubahnya, jadi Anda harus menemukan pintu yang terbuka.

fuxia
sumber
Terima kasih! Saya akan menyilangkan jari saya bahwa memperbaiki entri database telah menutup lubang keamanan.
Jennette
Jangan khawatir, saya sudah mengambil beberapa tindakan untuk menutup celah keamanan. Saya hanya tidak tahu bagaimana mereka masih bisa masuk. Sepertinya tidak ada yang diretas dalam beberapa hari terakhir, jadi semoga mengubah penyandian kembali ke UTF-8 adalah langkah terakhir dalam menutup semua lubang.
Jennette