Nếu một hacker thay đổi blog_charset thành UTF-7, điều đó có khiến WordPress dễ bị tấn công hơn không?


19

Tôi đã có một khách hàng bị hack gần đây và tôi nhận thấy rằng có những nhân vật kỳ lạ xuất hiện trên trang web của cô ấy, như Â và. Hóa ra các tin tặc đã thay đổi blog_charset thành UTF-7 trong wp_optionsbảng trong cơ sở dữ liệu. Tôi đã đặt nó trở lại UTF-8, nhưng tôi đã tự hỏi nếu trong thời gian nó được đặt thành UTF-7, điều đó có thể tạo ra bất kỳ lỗ hổng bảo mật nào không?

Tôi đã thực hiện một số tìm kiếm và phát hiện ra có một lỗ hổng WordPress UTF-7 đã được sửa trong phiên bản 2.0.6 . Chúng tôi đang chạy phiên bản WordPress mới nhất, vì vậy họ không thể sử dụng khai thác đó, nhưng có bất kỳ khai thác nào khác liên quan đến UTF-7 không? Thực sự, có bất kỳ lý do nào các tin tặc sẽ thay đổi blog_charset ngoài việc là một nỗi đau? Tôi đã cố gắng xác định làm thế nào họ tham gia và tôi tự hỏi nếu điều này được kết nối bằng cách nào đó.

Câu trả lời:


23

<>được mã hóa theo +ADw-+AD4-trong UTF-7 . Bây giờ hãy tưởng tượng như sau:

  1. Có người gửi +ADw-script+AD4-alert(+ACI-Hello+ACI-)+ADw-/script+AD4-dưới dạng văn bản bình luận. Nó sẽ vượt qua tất cả các vệ sinh không được giải thoát.

  2. Cơ sở dữ liệu mong đợi và xử lý tất cả dữ liệu đến dưới dạng UTF-8. Vì tất cả UTF-7 suối là UTF-8 có giá trị quá, điều này sẽ không bao giờ gây ra một lỗi SQL, và mysql_real_escapehoặc htmlspecialcharssẽ không chạm vào nó.

  3. WordPress gửi một tiêu đề text/html;charset=utf-7.

  4. WordPress hiển thị các bình luận, mong đợi dữ liệu thoát. Nhưng vì trình duyệt này được coi là UTF-7, JavaScript sẽ được thực thi.

Vì vậy, vâng, nó là một vấn đề bảo mật.

UTF-7 không được hỗ trợ bởi tất cả các trình duyệt, hầu hết sẽ hiển thị văn bản dưới dạng Windows-1252 (hoặc bất cứ thứ gì là mã hóa mặc định trên HĐH của họ) hoặc dưới dạng UTF-8. Vấn đề chính là: thoát sẽ không hoạt động nữa.


Chỉ cần thay đổi giá trị mã hóa trở lại không phải là một giải pháp. Một khách truy cập thường xuyên không bao giờ có thể thay đổi nó, vì vậy bạn phải tìm cánh cửa mở.


Cảm ơn! Tôi sẽ khoanh tay rằng sửa lỗi cơ sở dữ liệu đó đã đóng lỗ hổng bảo mật.
Jennette

Đừng lo lắng, tôi đã thực hiện một số hành động để đóng lỗ hổng bảo mật. Tôi chỉ không thể hiểu làm thế nào họ vẫn xâm nhập. Dường như không có gì bị hack trong vài ngày qua, vì vậy hy vọng thay đổi mã hóa trở lại UTF-8 là bước cuối cùng trong việc đóng tất cả các lỗ hổng.
Jennette

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.