Tổng hợp các phương pháp bảo mật cho Xenforo

PVS

Super Moderator
Thành viên BQT
Tham gia
28/02/2015
Bài viết
16,728
Được Like
12,680
I. Di chuyển vị trí file config
- Bước 1:

Đầu tiên tạo một thư mục chứa file config, thư mục này đê đâu tuỳ các bạn
ví dụ: diendan/game/data/core/app/vnxf
Ở đây vnxf là thư mục chứa file config mình tạo.

- Bước 2:
sau đó copy file config của các bạn đặt vào đó, đổi tên file config
ví dụ: mình đổi config.php thành vnxf.php

- Bước 3:

chmod file config vừa đổi tên (ví dụ: vnxf.php) thành 400
chmod thư mục chứ file config thành 101

- Bước 4:
Mở file config.php gốc trong thư mục library lên xoá toàn bộ nội dung trong đó và thay bằng đoạn code sau:
Mã:
<?php include "diendan/game/data/core/app/vnxf/vnxf.php" ?>

sau đó chmod 400
Trong đó: diendan/game/data/core/app/vnxf/vnxf.php là đường dẫn tới file config
chmod 101 cho thư mục: Tác dụng khi truy cập vào thư mục thì sẽ báo thư mục rỗng
chmod 400 cho file: Chống sửa

P/s: Chống chỉ định với các bạn sử dụng code load cache.

II. Đặt code trong nhiều lớp thư mục
Thông thường khi local attack (local thế nào các bạn hỏi google nhé) hacker thường sẽ get file config để lấy thông tin database. Thường thì cũng dễ đoán đường dẫn thôi nếu không thay đổi. Mình ví dụ với direct admin thì đường dẫn mặc định thế này:

- /home/vnxf/domains/vnxf.vn/public_html/library/config.php
hoặc nếu đặt code trong thư mục thì sẽ thế này
- /home/vnxf/domains/vnxf.vn/public_html/folder/library/config.php
vậy hacker chỉ cần run câu lệnh đến đường dẫn đó là xong (cách run lệnh và làm thế nào để run bà con tự tìm hiểu nhé)

Để phòng tránh điều này thì ta đặt code inclu trong nhiều thư mục ví dụ thế này:
/home/vnxf/domains/codientu.org/public_html/folder/folder1/folder2/folder3/folder4/diendan

Rồi việc còn lại là trỏ domain tới cái thư mục diendan tức là cái thư mục cuối cùng chứa code. (trỏ domain ra sao hỏi google nhé :)) )

Vậy đường dẫn của site vẫn là thế này http://yourdomain/diendan

=> ai cũng nghĩ code ta chỉ đặt trong thư mục diendan và nghĩ đường dẫn của ta là thế này:

/home/vnxf/domains/vnxf.vn/public_html/diendan/library/config.php

chẹp mà hacker không gà thế đâu nếu run lệnh không được họ sẽ dễ dàng đoán ra ta đặt code xuyên nhiều thư mục .

Mà cái quan trọng là tên các thư mục cha mẹ của thư mục diendan tên là gì mỗi mình ta biết thôi đâu ai biết đâu, vậy cứ để người khác ngồi mò đường dẫn đi. :) tốn kha khá time đấy.

Chú ý CHMOD mỗi lớp thư mục là 701, up lên file index.html với nội dung rỗng để che không cho thấy nội dung trong thư mục (trừ cái thư mục cuối cùng chưa code đó dừng up nhé không lại ko vào đc 4rum :) )

P/s: cách này hay nhưng sẽ là xấu đường link khi dùng xenporta nên ai muốn làm đẹp link thì khỏi dùng
:))

III. Sử dụng file .htaccess để bảo mật website

Việc sử dụng htaccess giúp hạn chế tối đa việc chèn Shell nếu có lỗi. Các thư mục sau: public_html/data ,public_html/styles ,public_html/js bạn up file .htaccess với nội dung sau:
Mã:
<FilesMatch "\.(cgi|pl|php)$"> # Bạn có thể tự cập nhật file không cho phép chạy, ở đây chỉ cấm 03 loại file: cgi, pl và php
Order Deny,Allow
Deny from all
</FilesMatch>

Các thư mục sau: public_html/library , public_html/internal_data ,public_html/install (tùy)bạn up file.htaccess với nội dung sau:
Mã:
Order deny,allow
Deny from all

IV. Bảo mật admincp

Phần 1: Thay đổi địa chỉ trang quản lí admin

(Mặc định trang quản lí của bạnhttp://tenwebsiteban/admin.php).

- Vào host đổi tên file admin.php thành tên bạn muốn (ví dụ: abc.php).

- Mở file: library/XenForo/Link.php. Tìm đoạn code sau:
Mã:
$outputLink = 'admin.php' . ($append !== '' ? '?' : '') . $append;
if ($fullLink)

- Thay admin.php bằng tên file mà bạn vừa đổi.
Ví dụ:
Mã:
$outputLink = 'abc.php' . ($append !== '' ? '?' : '') . $append;

- Mở template moderator_bar tìm đoạn code sau:
Mã:
<a href="admin.php" class="acp adminLink"><span class="itemLabel">{xen:phrase admin_control_panel}</span></a>

- Thay admin.php bằng tên file mà bạn vừa đổi.
Ví dụ:
Mã:
<a href="abc.php" class="acp adminLink"><span class="itemLabel">{xen:phrase admin_control_panel}</span></a>

Phần 2: Tạo thêm 1 lần đăng nhập trước khi vào AdminCP.
- Mở file admin.php (hoặc file mà bạn vừa đổi tên) thêm vào sau dòng <?php đoạn code sau:
Mã:
//Dang nhap vao admincp$config['user_vietxforg'] = 'yourusername';$config['pass_vietxforg'] = 'yourpassword'; if ($_SERVER['PHP_AUTH_USER'] != $config['user_vietxforg'] || $_SERVER['PHP_AUTH_PW'] != $config['pass_vietxforg']){header('WWW-Authenticate: Basic realm="Xin vui long khai bao thong tin yeu cau truoc khi duoc chuyen den bang dang nhap"');header('HTTP/1.0 401 Unauthorized'); //Trang sẽ hiển thị khi thông tin khai báo sai. (support HTML).echo '<center>Access Denied!!!</center>';exit;}

Phần 3: Tạo 1 file admin.php ảo để đánh lừa hacker.
- Sau khi hoàn thành bước 1 file admin.php thật sẽ được thay đổi. Bạn có thể tạo ra 1 file admin.php ảo có nội dung như sau:
Các bạn tải file đính kèm và sửa các code sau:
Mã:
<title>Cộng đồng Xenforo Việt Nam - Admin Control Panel Login | Admin CP - Cộng đồng Xenforo Việt Nam</title>

Mã:
Cộng đồng Xenforo Việt Nam - Admin Control Panel Login

Mã:
http://vnxf.vn

Mã:
vnxf.vn

Thành title và link site bạn nhé. Lưu ý chỉ sửa những cái mình ghi ở trên.

V. Bảo mật admin bằng IP

- Bước 1:
Tạo 1 file php đặt tên là baomat.php

Mã:
<?php
$list_ip = array(
    "127.0.0.1",        // Local
    "202.78.227.157"    // IP Hosting
    );
$file_listip = "themip.txt"; // Kiem tra xem trong file themip.txt co ip dang truy cap khong.
$fopen_ip = fopen($file_listip, "r");
while ( !feof($fopen_ip) )
    {
        $read_ip = fgets($fopen_ip,50);
        $ip = explode('<nbb>', $read_ip);
        $list_ip[] = $ip[1];
    }
    fclose($fopen_ip);
if ( !in_array($_SERVER['REMOTE_ADDR'], $list_ip) ){
        echo "<center></center>";
        exit();
    }
?>

- Bước 2: Tạo tiếp 1 file php đặt tên là themip.php
Mã:
<?php
SESSION_start();
$pass = 'vnxf.vn'; // Mat khau de them ip vao file txt
$file_listip = "themip.txt"; // file txt co nhiem vu them ip
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Kiểm tra IP</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<?php
$fopen_ip = fopen($file_listip, "r");
while ( !feof($fopen_ip) )
    {
        $read_ip = fgets($fopen_ip,50);
        $ip = explode('<nbb>', $read_ip);
        $list_ip[] = $ip[1];
    }
    fclose($fopen_ip);
if ( in_array($_SERVER['REMOTE_ADDR'], $list_ip) ){
        echo "<center>IP của bạn đã được cập nhập sẵn.</center>";
    }
else {
    if ($_POST[submit]) {
        if ($_POST[code] == "$pass") $_SESSION['code'] = "$pass";
    }
    if (!$_SESSION['code'] || $_SESSION['code'] != "$pass") {
   echo "<center><form action='' method=post>
        Code: <input type=password name=code> <input type=submit name=submit value=Submit>
  </form></center>
        ";
     exit;
}
        $new_ip = $_SERVER['REMOTE_ADDR'];
        $fp = fopen($file_listip, "a+");
        fputs ($fp, "<nbb>$new_ip<nbb>\n");
        fclose($fp);
        echo "<center>IP của bạn đã được cập nhập thành công.</center>";
}
?>
</body>
</html>

Đoạn này:
Mã:
vnxf.vn

là pass nhé các bạn thay tùy ý.

- Bước 3:
Tiếp tục mở Notepad lên rồi lưu lại với tên themip.txt

- Bước 4: Mở file admin.php thêm đoạn code này
Mã:
include("baomat.php");

dưới dòng <?php

Bước 5: up tất cả lên host ngang hàng index
* tác dụng của các file:

Khi các bạn gõ đường dẫn: http://yoursitename/admin.php nó sẽ đọc lệnh:
include("baomat.php"); trước và chạy file baomat.php, file baomat.php sẽ check trong file themip.txt xem có địa chỉ IP bạn trong đó không, nếu có thì nó sẽ chuyển bạn tới khung đăng nhập của admincp, nếu không có thì nó sẽ hiện trang trắng.

Để thêm IP bạn chạy link: http://yoursite/themip.php

và nhập pass vào ô code

Chúc các bạn thành công.


Nguồn: codientu.org​
 

bui hung

Corporal
Tham gia
16/05/2016
Bài viết
112
Được Like
81
bài viết hay vậy sao không có ai bình luận nhỉ
 

bui hung

Corporal
Tham gia
16/05/2016
Bài viết
112
Được Like
81
Phần 2: Tạo thêm 1 lần đăng nhập trước khi vào AdminCP.
- Mở file admin.php (hoặc file mà bạn vừa đổi tên) thêm vào sau dòng <?php đoạn code sau:
Thêm đoạn này vào thì nó cứ hiện cái bảng đòi nhập pass nhập hoài không cho vào
Phần 3: Tạo 1 file admin.php ảo để đánh lừa hacker.
- Sau khi hoàn thành bước 1 file admin.php thật sẽ được thay đổi. Bạn có thể tạo ra 1 fileadmin.php ảo có nội dung như sau:
Các bạn tải file đính kèm và sửa các code sau:

Sao không thấy file đính kèm đâu PVS ơi
 
Sửa lần cuối:
  • Like
Reactions: THB

2-tek

MasterCorporal
Tham gia
27/06/2015
Bài viết
347
Được Like
286
Khá hay, nhưng theo riêng mình thì chỉ cần chmod file config hoặc ZendPHP file config và đặt .htaccess trong folder attach là đủ rồi. Vì sao, vì khi bị hack chắc chắn hacker sẽ scan source + tìm erro log + scan sql inject cho dù bạn có dấu hay đổi tên config đi đâu chăng nữa vẫn tìm ra! Yes~~

Hack chỉ tìm lổ hổng trong thư viên img php-gd thông qua attach file, bạn chỉ cần bảo mật hoặc fix phần attach là ổn! coffee~~
 

phankt

Corporal
Tham gia
23/08/2016
Bài viết
116
Được Like
25
sao em tìm không thấy file config ở đâu để cấu hình nhỉ các bác
 
  • Like
Reactions: THB

GiaBao

Private
Tham gia
08/07/2016
Bài viết
24
Được Like
23
không có file config.php không cấu hình thì web bạn chạy thế nào. hehe
 
  • Like
Reactions: THB

tri78

Moderator
Thành viên BQT
Tham gia
13/05/2015
Bài viết
428
Được Like
327
Thấy bảo mật 2 lớp của Xenf hay đấy. Đang dùng, khá tiện lợi, nó cũng cung cấp mã dự phòng nữa. An tâm.
 
  • Like
Reactions: THB

phankt

Corporal
Tham gia
23/08/2016
Bài viết
116
Được Like
25
Khá hay, nhưng theo riêng mình thì chỉ cần chmod file config hoặc ZendPHP file config và đặt .htaccess trong folder attach là đủ rồi. Vì sao, vì khi bị hack chắc chắn hacker sẽ scan source + tìm erro log + scan sql inject cho dù bạn có dấu hay đổi tên config đi đâu chăng nữa vẫn tìm ra! Yes~~

Hack chỉ tìm lổ hổng trong thư viên img php-gd thông qua attach file, bạn chỉ cần bảo mật hoặc fix phần attach là ổn! coffee~~
Bác có thể hướng dẫn cho mọi người được không ah
 
  • Like
Reactions: THB

phankt

Corporal
Tham gia
23/08/2016
Bài viết
116
Được Like
25
Phần 2: Tạo thêm 1 lần đăng nhập trước khi vào AdminCP.
- Mở file admin.php (hoặc file mà bạn vừa đổi tên) thêm vào sau dòng <?php đoạn code sau:
//Dang nhap vao admincp$config['user_vietxforg'] = 'yourusername';$config['pass_vietxforg'] = 'yourpassword'; if ($_SERVER['PHP_AUTH_USER'] != $config['user_vietxforg'] || $_SERVER['PHP_AUTH_PW'] != $config['pass_vietxforg']){header('WWW-Authenticate: Basic realm="Xin vui long khai bao thong tin yeu cau truoc khi duoc chuyen den bang dang nhap"');header('HTTP/1.0 401 Unauthorized'); //Trang sẽ hiển thị khi thông tin khai báo sai. (support HTML).echo '<center>Access Denied!!!</center>';exit;}
Phần này có phát sinh lỗi gì không khi mà em đăng nhập 2 lần ok. vào đến trang cài đặt add-on nó nó hiển thị một lần nữa.
Nhập đúng pas và id nhưng không được..
click vào hủy bỏ sau đó vào lại trang admin thì hệ thống báo rebuild.
Sau khi rebuild thì add-on đó đã được cài vào.
Như vậy là sao.. nếu người lạ muốn cài add-on vào không cần biết pas vẫn cài bình thường ah bác @PVS
Đây có phải là lỗi hay là lỗ hổng của các cài đặt trên
 

PVS

Super Moderator
Thành viên BQT
Tham gia
28/02/2015
Bài viết
16,728
Được Like
12,680
bạn dùng xen bao nhiêu
 

tri78

Moderator
Thành viên BQT
Tham gia
13/05/2015
Bài viết
428
Được Like
327
Phần này có phát sinh lỗi gì không khi mà em đăng nhập 2 lần ok. vào đến trang cài đặt add-on nó nó hiển thị một lần nữa.
Nhập đúng pas và id nhưng không được..
click vào hủy bỏ sau đó vào lại trang admin thì hệ thống báo rebuild.
Sau khi rebuild thì add-on đó đã được cài vào.
Như vậy là sao.. nếu người lạ muốn cài add-on vào không cần biết pas vẫn cài bình thường ah bác @PVS
Đây có phải là lỗi hay là lỗ hổng của các cài đặt trên

bạn dùng xen bao nhiêu
Bản nào cũng vậy thôi, người hướng dẫn thiếu 1 bước nào đó, nên khi gặp lỗi như trên thì đổi cái admin.php ở thanh địa chỉ thành tên file bạn đã làm, ví dụ admin.php bạn đã đổi thành abc.php thì gõ domain/abc.php/..... rồi enter nó sẽ cài tiếp.
 

tuna

Sergeant
Tham gia
30/01/2017
Bài viết
639
Được Like
276
Nên dùng phương pháp nào các bác, nhiều quá ko biết đường nào lần :D
 

tuna

Sergeant
Tham gia
30/01/2017
Bài viết
639
Được Like
276
chmod htaccess về 400 và 404 tất cả các link, vãi các bác :D
 
Tham gia
04/05/2015
Bài viết
41
Được Like
38
Xin chào AE VNXF. Lâu ngày mới vào lại nên bổ sung bài này thêm 1 tí nhé :D

Thông thường thay đổi tên trang Admin CP khi cài đặt add-on sẽ bị lỗi vì nó sẽ chuyển qua admin.php (cũ), vậy nên mọi người phải sửa thêm 1 bước nữa. Mọi người vào theo đường dẫn library => XenForo => ViewRenderer => rồi mở file HtmlAdmin.php, sau đó tìm admin.php và sửa thành tên mà bạn vừa đổi. Theo ví dụ của bạn đăng là abc.php.

Xong. Hy vọng giúp ích cho mọi người.
 

singh

Sergeant
Tham gia
08/06/2015
Bài viết
470
Được Like
276
phần bảo mật admin. Thiếu chỉ dẫn " thay link admin.php khi cài đặt, gỡ bỏ, updtae addon".
Nó toàn ra link admin.php phải sửa thủ công ^^
 

thahtrung06

Moderator
Thành viên BQT
Tham gia
12/11/2019
Bài viết
1,095
Được Like
450
phần bảo mật admin. Thiếu chỉ dẫn " thay link admin.php khi cài đặt, gỡ bỏ, updtae addon".
Nó toàn ra link admin.php phải sửa thủ công ^^
Muốn thay link admin.php và ko bị lỗi khi update, gỡ bỏ addons cũng không khó đâu.
 

Hướng dẫn sử dụng

XenForo 1 XenForo 2
Translate by PVS

Dịch vụ XenForo của VNXF

Mr. Tuấn

Mobile/Zalo: 0988 488 096

Telegram: bluekpro

Email: [email protected]

Nhà Tài Trợ

Mút Xốp Không Gian
pallet Thịnh Phát
Top Bottom