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

Thảo luận trong 'Tips and Guides' bắt đầu bởi PVS, 16/04/2015.

  1. PVS

    PVS Cộng Sự Đặc Biệt Thành viên BQT

    Tham gia:
    28/02/2015
    Bài viết:
    11,755
    Đã được thích:
    7,002
    Điểm thành tích:
    113
    Giới tính:
    Nam
    Nơi ở:
    Huế
    Web:
    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ã:
    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ã:
     # 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
    
    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:
    - Thay admin.php bằng tên file mà bạn vừa đổi.
    Ví dụ:
    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
    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 '
    Access Denied!!!
    ';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ã:
    Cộng đồng Xenforo Việt Nam - Admin Control Panel Login | Admin CP - Cộng đồng Xenforo Việt Nam
    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ã:
    ', $read_ip);
            $list_ip[] = $ip[1];
        }
        fclose($fopen_ip);
    if ( !in_array($_SERVER['REMOTE_ADDR'], $list_ip) ){
            echo "
    "; exit(); } ?>
    - Bước 2: Tạo tiếp 1 file php đặt tên là themip.php
    Mã:
    
    
    
    
    Kiểm tra IP
    
    
    
    ', $read_ip);
            $list_ip[] = $ip[1];
        }
        fclose($fopen_ip);
    if ( in_array($_SERVER['REMOTE_ADDR'], $list_ip) ){
            echo "
    IP của bạn đã được cập nhập sẵn.
    "; } else { if ($_POST[submit]) { if ($_POST[code] == "$pass") $_SESSION['code'] = "$pass"; } if (!$_SESSION['code'] || $_SESSION['code'] != "$pass") { echo "
    Code:
    "; exit; } $new_ip = $_SERVER['REMOTE_ADDR']; $fp = fopen($file_listip, "a+"); fputs ($fp, "$new_ip\n"); fclose($fp); echo "
    IP của bạn đã được cập nhập thành công.
    "; } ?>
    Đ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
    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​
     
    THB, phankt, 2-tek and 4 others like this.
  2. bui hung

    bui hung Thượng Đế

    Tham gia:
    16/05/2016
    Bài viết:
    112
    Đã được thích:
    76
    Điểm thành tích:
    28
    Giới tính:
    Nam
    Nơi ở:
    da lat
    Web:
    bài viết hay vậy sao không có ai bình luận nhỉ
     
  3. bui hung

    bui hung Thượng Đế

    Tham gia:
    16/05/2016
    Bài viết:
    112
    Đã được thích:
    76
    Điểm thành tích:
    28
    Giới tính:
    Nam
    Nơi ở:
    da lat
    Web:
    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 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
     
    Chỉnh sửa cuối: 03/06/2016
    THB thích bài này.
  4. 2-tek

    2-tek Thượng Đế

    Tham gia:
    27/06/2015
    Bài viết:
    275
    Đã được thích:
    214
    Điểm thành tích:
    43
    Giới tính:
    Nam
    Nghề nghiệp:
    Designer
    Nơi ở:
    HCMC
    Web:
    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~~
     
    THB thích bài này.
  5. phankt

    phankt Thượng Đế

    Tham gia:
    23/08/2016
    Bài viết:
    114
    Đã được thích:
    23
    Điểm thành tích:
    18
    Giới tính:
    Nam
    Nghề nghiệp:
    SEO Gà Mờ
    Nơi ở:
    hanoi
    Web:
    sao em tìm không thấy file config ở đâu để cấu hình nhỉ các bác
     
    THB thích bài này.
  6. GiaBao

    GiaBao Thượng Đế

    Tham gia:
    08/07/2016
    Bài viết:
    24
    Đã được thích:
    21
    Điểm thành tích:
    3
    không có file config.php không cấu hình thì web bạn chạy thế nào. hehe
     
    THB thích bài này.
  7. tri78

    tri78 Thượng Đế

    Tham gia:
    13/05/2015
    Bài viết:
    306
    Đã được thích:
    257
    Điểm thành tích:
    63
    Giới tính:
    Nam
    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.
     
    THB thích bài này.
  8. phankt

    phankt Thượng Đế

    Tham gia:
    23/08/2016
    Bài viết:
    114
    Đã được thích:
    23
    Điểm thành tích:
    18
    Giới tính:
    Nam
    Nghề nghiệp:
    SEO Gà Mờ
    Nơi ở:
    hanoi
    Web:
    Bác có thể hướng dẫn cho mọi người được không ah
     
    THB thích bài này.
  9. THB

    THB Admin - Founder Thành viên BQT

    Tham gia:
    25/02/2015
    Bài viết:
    6,336
    Đã được thích:
    3,550
    Điểm thành tích:
    113
    Giới tính:
    Nam
    Nghề nghiệp:
    CEO
    Nơi ở:
    Bình Dương
    Web:
    đây bạn; public_html/library/config.php
     
  10. phankt

    phankt Thượng Đế

    Tham gia:
    23/08/2016
    Bài viết:
    114
    Đã được thích:
    23
    Điểm thành tích:
    18
    Giới tính:
    Nam
    Nghề nghiệp:
    SEO Gà Mờ
    Nơi ở:
    hanoi
    Web:
    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
     
  11. PVS

    PVS Cộng Sự Đặc Biệt Thành viên BQT

    Tham gia:
    28/02/2015
    Bài viết:
    11,755
    Đã được thích:
    7,002
    Điểm thành tích:
    113
    Giới tính:
    Nam
    Nơi ở:
    Huế
    Web:
    bạn dùng xen bao nhiêu
     
  12. tri78

    tri78 Thượng Đế

    Tham gia:
    13/05/2015
    Bài viết:
    306
    Đã được thích:
    257
    Điểm thành tích:
    63
    Giới tính:
    Nam
    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.
     
  13. tuna

    tuna Thượng Đế

    Tham gia:
    30/01/2017
    Bài viết:
    641
    Đã được thích:
    246
    Điểm thành tích:
    43
    Giới tính:
    Nam
    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
     
  14. tuna

    tuna Thượng Đế

    Tham gia:
    30/01/2017
    Bài viết:
    641
    Đã được thích:
    246
    Điểm thành tích:
    43
    Giới tính:
    Nam
    chmod htaccess về 400 và 404 tất cả các link, vãi các bác :D
     
  15. Thiện Nguyễn

    Thiện Nguyễn Thượng Đế

    Tham gia:
    04/05/2015
    Bài viết:
    41
    Đã được thích:
    34
    Điểm thành tích:
    18
    Giới tính:
    Nam
    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.
     
    aviaiva thích bài này.

Chia sẻ trang này