如何在我自己的本地PHP服务器上造成拒绝服务?

时间:2018-12-05 16:33:20

标签: php linux xampp virtual-machine denial-of-service

前言:我是一名即将毕业的计算机科学专业的学生,​​但是我对Web开发(尤其是PHP)的经验很少甚至没有。抱歉,不熟悉。

背景:我希望在自己的本地PHP服务器上创建一个简单的DoS漏洞,该服务器在Linux(18.04)64位虚拟盒计算机上运行XAMPP。为了确保不仅通过本地活动来提高虚拟机上的CPU使用率,我正在运行另一个虚拟机,在该虚拟机中,我将Python脚本与“ requests”库一起使用,以循环方式请求易受攻击的页面10,000次。截至目前,易受攻击的页面(dos.php)运行一个循环,在该循环中,它向列表添加一个随机数,然后回显通用文本行的哈希值,这些哈希值除了CPU占用率之外完全无关。

问题:我了解到可以将内存和CPU使用情况输出到浏览器(通过https://devdojo.com/tutorials/how-to-get-memory-and-cpu-usage-in-php)。问题是我无法使服务器上的CPU使用率超过4%...内存大约占30%。但是,我知道我做得不错,因为我看到从0-1%增长到4%的数字,但没有其他提高。

最终目标是证明概念验证,其中我证明了模糊器(SlowFuzz)如果指向PHP文档,则可以找到此漏洞。遇到DoS漏洞后,我打算编写一个非常简单且有意破坏的功能。类似于循环,用户可以在其中定义上限。

这是dos.php上的PHP图片: PHP Code

预先感谢您的帮助!希望这不是一个愚蠢的问题。

1 个答案:

答案 0 :(得分:0)

通过使用读取速度慢的客户端填充请求队列,可以轻松地对Apache进行DoS处理。
Apache具有配置的最大数量的同时连接客户端,默认情况下不对客户端强制执行最低读取速度,因此以1字节/秒的速度读取响应将使连接保持打开状态很长的时间,并减少DoS工具所需的重新连接数量同时也减少了普通客户来访的机会。

现代Apache设置会丢弃读取速度太慢的客户端,或者拒绝来自同一地址的过多连接,以防止此类攻击。我不确定默认的XAMPP安装是否包括此内容。

相关问题