Trong file config.php của vBulletin có 1 phần mà hầu hết các Admin mới bắt đầu làm forum đều bỏ qua đó là COOKIE SECURITY HASH

$config['Misc']['cookie_security_hash'] = ''; 

Thông thường, các admin để trống phần này trong file config mà không hề biết tầm quan trọng của nó. Để hiểu nó quan trọng như thế nào. Mình sẽ nói chi tiết để các bạn hiểu cơ chế hoạt động của nó.


Khi 1 user login vào forum nếu có check dấu ghi nhớ để lần sau không phải login lại khi hết cookie timeout thì phía client sẽ có 3 cookie đc thiết lập.
cookieprefix_userid,cookieprefix_password và cookieprefix_remember


cái userid và remember chắc mình không cần nói, cái password nó không phải là password của người dùng, cũng không phải là password trong cột password của table user.
Nó là kết quả

MD5(Cột_Password_Trong_table_User.$config['Misc']['cookie_security_hash']) 

Như vậy, nếu attacker khai thác đc 1 lỗi SQL Injection nào đó trên forum của bạn và lấy đc 1 số record trong table user mà giá trị cookie_security_hash bạn để trống trong file config.php thì tất nhiên, attacker sẽ dễ dàng login đc vào bất kỳ tài khoản nào bằng cách thiết lập cookie trên trình duyệt 3 cookie mình đã để cập bên trên.


Còn nếu bạn có thiết lập giá trị cookie_security_hash ? Attacker không thể biết đc giá trị này nếu chưa attack vào đc host của bạn hay có shell trên server. Như vậy, cho dù có lấy đc cả table user thì attacker cũng không thể nào login vào bất kỳ tài khoản nào cả (ngoại trừ trường hợp bạn sử dụng password quá đơn giản như 123456 [​IMG])


Vì vậy, khi đọc xong bài này, hãy mở ngay file config của bạn lên sửa thành. 

$config['Misc']['cookie_security_hash'] = 'gõ gì vào đây tùy ý'; 

Trường hợp không tìm thấy $config['Misc']['cookie_security_hash'] trong file config.php

Mở file functions.php lên tìm

define('COOKIE_SALT', $vbulletin->config['Misc']['cookie_security_hash']);

sửa thành

define('COOKIE_SALT', 'Nội dung bất kỳ mà bạn muốn');  

Đăng nhận xét Blogger

 
Top