03/10/2011 13:55:37 PM

Thiết kế web an toàn, thông báo lỗi bảo mật mã nguồn Vbulletin

(Lượt xem: 3262)
Thiết kế web an toàn, thông báo lỗi bảo mật mã nguồn VbulletinThiết kế web an toàn, thông báo lỗi bảo mật mã nguồn Vbulletin
 Các phiên bản vbb từ 4.0 - 4.13 bị mắc lỗi khá nghiêm trọng SQL injection
 Thông qua lỗi này hacker có thể lấy được hầu hết thông tin nhạy cảm của website.
 Các webmaster chú ý và sửa chữa nhanh chóng lỗi này.
 Sau đây là một và lời khuyên:
1. Phân quyền forum thật kỹ
2. Đặt password (dùng htaccess) cho thư mục admin. Nên đổi tên thư mục này và không cập nhật lại trong file config.php
3. Nên chmod cẩn thận các folder tốt nhất là 404 cho file và 701 cho folder, folder chứ attachment thì nên tạo file htaccess với nội dung sau.
 Deny from all
4. Thường xuyên nâng cấp forum khi có bản mới.
5. Thường xuyên cập nhật các thông tin về bảo mật Có thể xem tại "exploit-db" hoặc "The hacker news"
Hướng dẫn:
+Addon firefox : Live HTTP headers +Cookie Editor
+Get user + add group + bật live http headers +search group vừa add
+Get email:user: passwd:salt
+Add Cookie Name trong cookie Editor bb_userid + bb_password
+Md5 password vừa get cho vào content của bb_password
+LogOut sau đó vào lại forum với quyền admin
 Cách sữa lỗi bảo mật vbulletin 4.0 đến 4.1.4
 Mởi file global.php thêm đoạn sau vào sau chuôi <?php trên đỉnh trang
 function check_requires_value($p)
{
foreach($p as $k=>$v)
{
if(is_array($v))
check_requires_value($v);
else
$val = strtolower($v);
if(preg_match("/union/",$val)) die("deny");
}
}
check_requires_value($_GET);
check_requires_value($_POST);
Cách Fix 2:
Hãy nhanh ng nâng cấp lên phiên bản 4.1.4 để fix lỗi trên hoặc các bạn cũng có thể fix bằng tay như sau . Edit file /includes/class_core.php
Tìm dòng 750 :
PHP Code:
 
function sql_prepare($value)
{
if (is_string($value))
{
retu "'" . $this->;escape_string($value) . "'";
}
else if (is_numeric($value) AND $value + 0 == $value)
{
retu $value;
}
else if (is_bool($value))
{
retu $value ? 1 : 0;
}
else
{
retu "'" . $this->;escape_string($value) . "'";
}
}
 
Thay thế bằng :
PHP Code:
 function sql_prepare($value)
{
if (is_string($value))
{
retu "'" . $this->;escape_string($value) . "'";
}
else if (is_numeric($value) AND $value + 0 == $value)
{
retu $value;
}
else if (is_bool($value))
{
retu $value ? 1 : 0;
}
else if (is_null($value))
{
retu "''";
}
else if (is_array($value))
{
foreach ($value as $key =>; $item)
{
$value[$key] = $this->;sql_prepare($item);
}
retu $value;
}
else
{
retu "'" . $this->;escape_string($value) . "'";
}
}
  • Mẫu giao diện web thiết kế bởi Topweb





Xem tất cả
Tư vấn khách hàng
Điện thoại để được tư vấn tốt nhất
0973668377