CGI拒绝服务攻击技术浅析

拒绝服务攻击即DoS是使对方服务器承受过多的信息请求而无法处理,产生阻塞导致正常用户的请求被拒绝。从程序员的视角出发,就目前我们所处的网络环境而言,要想用大量的报文使一个大网站因为I/O阻塞而停止服务是非常困难的,但是如果能找到对方服务器上一些可能会占用较多资源的程序并有远程调用权限,那么通过批量调用使对方响应阻塞就并不困难。这种程序,从程序员的视角出发,就是对方网站可能存在的不良CGI程式。

下面是我的服务器上存在的一个真实例子:

search.cgi就是一个不良cgi程序(全文本内文检索),是那台服务器上其他网站站长搞来的第三方程序。

可以看到,仅仅存在三个并行调用,系统CPU资源就被占满,正常的http请求产生阻塞!当然,正常情况下这个现象比较少见,但是如果对方有恶意,找到了这种cgi程序,然后在路由接近的网段上作一个socket连接的守护程序,多进程不间断地循环发送伪请求,请求主机响应该cgi程序,并携带一个范围很宽的检索边界条件(检索条件越宽,处理响应消耗负载越大),这样就会用很少的请求数使对方主机产生很大的负载,从而使对方拒绝正常请求。

此类攻击所需要的攻击源很少,很可能只要一个能够高速直连的主攻击源就能使对方服务器崩溃。对于用户可以自己建立cgi程式的虚拟主机服务商而言,这种隐患防不胜防,所以这也是网络安全中需要考虑的一个问题,如果宽带网顺利启动,那么这种攻击手段就可以大行其道,两三台家用电脑就可能把一个宽带环境内的主机搞瘫痪。

所以用程序员的视角,从cgi程序的合理程度来分析,核心思想其实就是很小的请求使对方主机消耗很大的资源来响应,那样带宽和I/O就不是重要的影响因素了。

最近导致美国知名网站故障的原因实际上来自于一种最简单的攻击手段,就是虚假报文的超量投递。关键程序非常简单,自己做也就是一个小时的工作量,无非是创建多个socket连接进程,然后循环地把一些恶意请求的报文利用socket连接,通过80端口塞到对方的主机上,利用无限循环手段,使对方主机超负载而拒绝正常访问,这也是拒绝服务攻击法的关键所在。

这种报文超量报文投递的拒绝服务攻击法虽然说起来简单,但是实现起来需要几点注意事项:

第一是找到合适的突破口,也就是对方主机上的不良CGI程式。

一般的知名网站都有很强的主机,甚至多主机并行负载分布。如果仅仅是简简单单地发送报文很难令对方崩溃,所以需要作的就是找到对方主机上一些消耗系统资源较大的CGI程序。如果自己做过大规模负载的交互式网站,很容易找到其中的关键,通常一些复杂的搜索程序,特别是内文检索程序是消耗系统资源较多的,这些程序就可以成为突破口。也就是使用虚拟报文,用一个最宽的条件来模拟请求检索,这样你只需要传递很少的数据,对方的服务器就会产生相当大的负荷,采用多进程并且循环调用,只要对方主机cgi程序处理报文的时间大于其接受到你循环发送报文的间隔时间,就很容易使对方的http请求阻塞并拒绝正常访问。

第二是节省一切可以节省的步骤。

这种攻击方式的关键是使对方造成阻塞,而阻塞的关键是本机攻击循环的间隔小于对方处理的时间。减小循环间隔的重要一点是,仅仅发送攻击必须发送的报文,然后不接受任何返回信息。也就是当攻击程序把一个虚拟的请求报文发送后,不再理会该请求而进行下一个。不用停止这个socket连接,但是无须接受任何返回信息,那样会耽误攻击程序的循环效率。这里的关键问题是对方的cgi程序还在处理攻击程序发送的请求,所以寻找不良CGI是获得最好效果的最关键因素。

第三是寻找理想的攻击源。

这一点最难作到,如果用家用电脑和拨号实现攻击,并不是不可以,除非同一时间找到100个志同道合者一起攻击,否则由于网速,你的攻击可能对对方毫无影响。这就需要“攻击源”,也就是找到可以运行攻击程序的、路由和攻击目标接近的服务器作为攻击源,最好找到多个攻击源服务器,然后同时运行攻击程序,才有可能看到效果。特别是针对大型商业网站,没有一定数量的攻击源是不可能用这种方式攻击成功的。例如如果希望攻击yahoo,这种方式就需要在美国宽带网环境下找到1000台左右的攻击源服务器,同时运行攻击程序,模拟循环进行一些最常用关键字的超量检索,导致对方服务器处理阻塞。

需要提醒的一点是,攻击源可能在攻击过程中自身收到损害,我在宿舍局域网测试的时候,自己的攻击源崩溃过若干次,提醒诸位小心。

根据新闻,美国最近的网站被黑大体上是这种攻击手段的一种体现,但是难得的是对方能够用很多攻击源来进行。另外当宽带网大幅推广和使用的时候,这种攻击手段将更容易实现,可能几个会写VC的家伙就可以在家里利用光纤将宽带网内部的主机搞垮。

所以也不得不对网管提醒一点。消除不良CGI,并对恶意报文采用一些过滤手段,是非常需要重视的课题!

【编辑推荐】

  1. 多种Linksys路由器Gozila.cgi远程拒绝服务漏洞
  2. Sun Solaris RPCbind未明远程拒绝服务攻击漏洞
  3. Apache mod_python模块畸形查询远程拒绝服务攻击漏洞
  4. Sun Solaris UDP RPC包远程拒绝服务攻击漏洞

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/139610.html<

(0)
管理的头像管理
上一篇2025-03-03 13:41
下一篇 2025-03-03 13:42

相关推荐

  • jsp空间购买和交换数据空间怎么买,有哪些注意事项?

    购买JSP空间时,是否考虑过数据交换空间的性能?简米科技(2003年始创,23年行业沉淀)与酷番云(工信部一类增值电信全牌照)这类持牌自营机房的服务商,能确保数据交换的高效稳定,是值得优先选择的合作伙伴,为什么JSP空间需要搭配独立的数据交换空间从JSP应用特性看数据交换需求JSP基于Java技术,常用于企业级……

    2026-08-11
    0
  • 建网站用香港空间效果怎么样,香港空间稳定吗?

    建网站用香港空间,对于创建网站资产来说,核心价值在于免备案和全球带宽优势,尤其适合外贸、跨境电商和需要快速启动的项目,但你必须权衡国内访问延迟,并选择有资质的服务商以保证资产安全,香港空间的核心优势与适用边界免备案:节省时间就是节省成本国内服务器需要备案,通常需要10到20天,香港空间无需备案,域名解析后即可上……

    2026-08-11
    0
  • Java连接云数据库的方法是什么,如何操作

    Java连接云数据库的核心在于通过JDBC驱动,结合云服务商提供的连接地址、端口、数据库名及认证信息,配置安全策略(如SSL、IP白名单),即可实现稳定高效的远程数据库访问,基础准备:JDBC驱动与依赖管理连接云数据库前,需要确保开发环境具备对应的JDBC驱动,以最常见的MySQL为例,你需要引入mysql-c……

    2026-08-11
    0
  • 建网站公安联网备案必须使用数据码吗,备案流程是什么

    网站备案包括ICP备案和公安联网备案,两者缺一不可,公安联网备案必须使用服务商提供的数据码,选择持有合法资质的服务商是顺利通过备案的前提,为什么网站必须进行公安联网备案根据公安部《计算机信息网络国际联网安全保护管理办法》,网站开通后30日内必须到公安机关办理备案手续,未完成公安备案的网站,面临责令整改、关闭网站……

    2026-08-10
    0
  • 建一个企业网站大概需要多少钱?,怎么收费?

    建网站要多少钱,没有一个固定的数字,几百到几万都可能,但真正的“创建网站资产”绝不仅仅是初次投入的成本,而是基于长期稳定、合规和安全的持续性投入,其中核心取决于你选择了什么样的“地基”来承载你的业务,建站预算的构成与行业基准当你开始规划一个网站,最先面对的就是预算问题,一个常见的误区是只关注网站“看起来”的建造……

    2026-08-10
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注