Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
HTTP请求和Apache模块:创造性攻击向量_Apache_Security_Http Request_Apache Modules - Fatal编程技术网

HTTP请求和Apache模块:创造性攻击向量

HTTP请求和Apache模块:创造性攻击向量,apache,security,http-request,apache-modules,Apache,Security,Http Request,Apache Modules,这里的问题有点离经叛道: 我目前正试图用一些自定义模块来打破Apache 测试产生的原因是Apache在内部将其认为太大的请求(例如1MB垃圾)转发给适当连接的模块,迫使它们处理垃圾数据——而定制模块中的处理不足导致Apache整体陷入困境。哎哟,哎哟,哎哟 幸运的是,这一特定问题得到了解决,但问题在于是否存在其他类似的漏洞 现在我有一个工具可以使用,它可以让我向服务器发送一个原始HTTP请求(或者说,通过一个已建立的TCP连接发送原始数据,如果它遵循HTTP请求的形式,则可以将其解释为HTTP

这里的问题有点离经叛道:

我目前正试图用一些自定义模块来打破Apache

测试产生的原因是Apache在内部将其认为太大的请求(例如1MB垃圾)转发给适当连接的模块,迫使它们处理垃圾数据——而定制模块中的处理不足导致Apache整体陷入困境。哎哟,哎哟,哎哟

幸运的是,这一特定问题得到了解决,但问题在于是否存在其他类似的漏洞

现在我有一个工具可以使用,它可以让我向服务器发送一个原始HTTP请求(或者说,通过一个已建立的TCP连接发送原始数据,如果它遵循HTTP请求的形式,则可以将其解释为HTTP请求,例如“GET…”),我正在尝试提出其他想法。(像Slowloris和Nkiller2这样的TCP级攻击目前不是我的重点。)

有没有人对如何将服务器的自定义模块混淆到服务器自焚的地步有一些好主意?

  • 断裂的UTF-8?(尽管我怀疑Apache是否关心编码——我想它只是在处理原始字节。)
  • 仅仅太长的东西,后面跟一个0字节,后面跟垃圾
  • 等等
我不认为自己是一个很好的测试员(我做这件事的必要性和缺乏人力,不幸的是,我甚至没有一个基本的掌握Apache内部,这将有助于我),这就是为什么我希望有一个有见地的反应,或两个或三个。也许你们中的一些人为自己的项目做过类似的测试


(如果stackoverflow不是回答这个问题的合适地方,我很抱歉。不知道该把它放在哪里。)

Apache是这个星球上最坚固的软件项目之一。在Apache的HTTPD中发现漏洞将是一项不小的壮举,我建议您在一些更容易的猎物上切齿。相比之下,在其他httpd中,更常见的是看到漏洞,比如我今天看到的这个(不是开玩笑)。还有其他一些源代码泄露漏洞非常相似,我会看一下,这里是。已经在sf.net上被抛弃了近十年,并且已知存在影响它的缓冲区溢出,这使得它成为一个有趣的测试应用程序

当攻击一个项目时,你应该看看过去发现了什么样的漏洞。程序员可能会一次又一次地犯同样的错误,而且经常会出现一些模式。通过遵循这些模式,您可以发现更多的缺陷。您应该尝试搜索漏洞数据库,例如。您将看到的一件事是,apache模块最常受到破坏

像Apache这样的项目已经被严重模糊化了。有一些模糊框架,例如。Peach在很多方面都有助于模糊化,它可以帮助您的一个方法是提供一些讨厌的测试数据。对于成熟的项目来说,模糊化不是一个很好的方法,如果你走这条路,我会尽可能少的下载。(警告下载量非常低的项目可能会损坏或难以安装。)

当一家公司担心安全性时,他们通常会花很多钱购买Coverity等自动来源分析工具。国土安全部为Coverity提供了大量资金,用于测试开源项目和应用程序。我可以直接告诉你们,我发现用fuzzing,Coverity并没有发现。Coverity和其他源代码分析工具(如)将产生大量误报和漏报,但它们确实有助于缩小影响代码库的问题

(当我第一次在Linux内核上运行RAT时,我差点从椅子上摔下来,因为我的屏幕上列出了对strcpy()和strcat()的数千个调用,但当我深入代码时,所有调用都是使用静态文本的,这是安全的。)

漏洞研究是一种漏洞开发。我建议开发PHP/MySQL应用程序并进行探索。这个项目很重要,因为它表明存在一些现实世界中的漏洞,除非您手动逐行阅读代码,否则无法找到这些漏洞。它还有现实世界中的应用程序(博客和商店),非常容易受到攻击。事实上,由于安全问题,这两个应用程序都被放弃了。像fuzzer或acuentix这样的web应用程序会强奸这些应用程序和类似的应用程序。这个博客有一个窍门。新安装不会受到太多的攻击。您必须稍微使用该应用程序,尝试以管理员身份登录,创建博客条目,然后扫描它。在为sql注入测试web应用程序时,请确保已打开错误报告。在php中,您可以在php.ini中设置
display_errors=On


祝你好运

根据您连接的其他模块以及激活它们的其他模块(或者只是请求太大?),您可能希望尝试以下一些方法:

  • 错误编码-例如,如您提到的过长utf-8,在某些情况下,模块依赖于此,例如某些参数
  • 参数操作-同样,根据模块的操作,某些参数可能会弄乱它们,或者通过更改值、删除预期参数,或者添加意外参数
  • 与您的另一个建议相反,我将查看仅足够短的数据,即比最大值短一个或两个字节,但使用不同的组合—不同的参数、标头、请求正文等
  • 查看(还包括和)-错误的请求头或无效的组合(如多个内容长度)或无效的终止符,可能会导致模块错误地解释来自Apache的命令
  • 还考虑GZIP、块编码等。自定义模块很可能实现了