`
soardragon
  • 浏览: 316477 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

利用HTTP协议的特性进行拒绝服务攻击的一些构思

阅读更多

在介绍这个方法之前,让我们复习一下HTTP是怎样工作的:

  由于HTTP协议是基于请求/响应范式的(相当于客户机/服务器)。一个客户机与服务器建立连接后,发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。

留意这行文字:“服务器接到请求后,给予相应的响应信息,其格式为一个状态行”,这是HTTP协议的一个重要特性,我们可以做个实验:
用TELNET或任何一个能建立HTTP连接的程序连接到某服务器的80端口,手工输入:
GET/index.htmHTTP/1.0(必须确保这个工具能自动产生两个换行符,否则服务器会认为你没有输入完全!)
如果index.htm存在,你会看到类似以下的报文:

HTTP/1.1200OK
Server:Microsoft-IIS/5.0
Content-Location:http://www.******.com/index.htm
Date:Sat,20Jul200223:32:03GMT
Content-Type:text/html
Accept-Ranges:bytes
Last-Modified:Wed,03Jul200209:50:05GMT
ETag:"8e2ba27722c21:850"
Content-Length:3292
<html>
<head>
<title>青涩宝贝主题站--SGfans的世界!!!</title>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
<linkrel="stylesheet"href="all.css"type="text/css">
.......





这是正常的访问方法,但是如果我们胡乱输入请求呢?看:

HTTP/1.1400BadRequest
Server:Microsoft-IIS/5.0
Date:Sat,20Jul200223:37:59GMT
Content-Type:text/html
Content-Length:87

<html><head><title>Error</title></head><body>Theparameterisincorrect.</body></html>




呵呵,HTTP400-错误请求,其实就是HTTP语法错误,服务器老老实实给我们返回了。
可以得出结论:无论你输入了什么,服务器根据HTTP协议,总会返回信息

通常用得最多的DOS方法主要有SYN、Smurf、Land、TearDrop等,其中SYN的资料如下(抄来的资料~~呵呵)

假设一个用户向服务器发送了SYN报文后突然死机或掉线,那么服务器在发出SYN+ACK应答报文后是无法收到客户端的ACK报文的(第三次握手无法完成),这种情况下服务器端一般会重试(再次发送SYN+ACK给客户端)并等待一段时间后丢弃这个未完成的连接,这段时间的长度我们称为SYNTimeout,一般来说这个时间是分钟的数量级(大约为30秒-2分钟);一个用户出现异常导致服务器的一个线程等待1分钟并不是什么很大的问题,但如果有一个恶意的攻击者大量模拟这种情况,服务器端将为了维护一个非常大的半连接列表而消耗非常多的资源----数以万计的半连接,即使是简单的保存并遍历也会消耗非常多的CPU时间和内存,何况还要不断对这个列表中的IP进行SYN+ACK的重试。实际上如果服务器的TCP/IP栈不够强大,最后的结果往往是堆栈溢出崩溃---即使服务器端的系统足够强大,服务器端也将忙于处理攻击者伪造的TCP连接请求而无暇理睬客户的正常请求(毕竟客户端的正常请求比率非常之小),此时从正常客户的角度看来,服务器失去响应,这种情况我们称作:服务器端受到了SYNFlood攻击(SYN洪水攻击)。




而Smurf、TearDrop等是利用ICMP报文来Flood和IP碎片攻击的。
但是以上的DOS方法的目的无非都是让服务器大量消耗资源和超时连接,那么除了超时连接,能不能用“正常连接”的方法来产生拒绝服务攻击呢?

再来看看19端口的定义:

字符产生器协议(CharacterGeneratorProtocol)
字符产生器服务器一个有用的调试工具。无论接收到的是什么,它都返回特定的数据。

基于TCP的字符产生器服务
此服务可以是一个基于TCP的服务,TCP端口19是用于此服务的。一旦连接建立,服务器会传送一个字符流。接收到的信息会被抛弃。字符流会在用户请求下中止。用户可能会非正常中止一个连接,因此此服务必须准备处理这种情况。传输的速度会由TCP流控制机制负责,用户不必关心数据太快,而用户来不及处理。




19端口在早期已经有人用来做Chargen攻击了,即Chargen_Denial_of_Service,但是!他们用的方法是在两台Chargen服务器之间产生UDP连接,让服务器处理过多信息而DOWN掉,那么,干掉一台WEB服务器的条件就必须有2个:1.有Chargen服务2.有HTTP服务
实际上,现在是无法找到这么多同时开放两个这两个服务的服务器的。
看看开头的HTTP协议特性,和Chargen比较一下,你发现了什么?哈哈~~~没错!一个是无论接收到什么报文都会回应,一个是一旦连接建立就会发送报文,看看示意图:

发送请求------------------------------------->
客户端----------------------------------------------------------服务器
<-------------------------------------------回应

如果把客户端改为Chargen,就是以下情况:

字符流--------------------------------------->
Chargen----------------------------------------------------------服务器
<-----------------------------------400BadRequest

也就是说,这两者会产生利害冲突,可以这样比喻:两个人吵架,你骂一句,他还一句,这就是循环过程,除非有一方停止或第三者干涉,否则这将是个Do...Loop循环!
搬到HTTP和Chargen来说,就是因为这两者的特性正好天生一对,那好,就从这里下手:
攻击者伪造源IP给N台Chargen发送连接请求(Connect),如有必要还可以发送(Send)个“you”报文过去,Chargen接收到连接后就会返回每秒72字节的字符流(实际上根据网络实际情况,这个速度更快)给服务器,HTTP协议处理这个报文时当然会识别为400BadRequest而返回一条错误说明给它,接下来的情况嘛………………自己发挥想像力,别问我。

我用自己的机器(640kbpsADSL)+VBWinsock程序做测试,只用了3秒钟,程序就因为内存溢出而崩溃了(主要是TextBox的问题,它接受文本的最大范围为64KB),就是说,3秒钟内Chargen就发送了大于64KB的字符流!如果用大于10台的Chargen一起发起攻击,其速度足以大量消耗服务器资源和带宽,使服务器回应缓慢甚至DOWN掉!

 

 

分享到:
评论

相关推荐

    HTTP协议详解.pdf

    4. **利用HTTP协议的特性进行拒绝服务攻击的一些构思**:包括利用HTTP请求的复杂性,设计高负载请求,导致服务器性能下降。 5. **Http指纹识别技术**:通过对HTTP报文的特定特征进行分析,识别服务器软件版本、操作...

    http协议详解

    4. **利用HTTP协议的特性进行拒绝服务攻击的一些构思**:探讨如何利用HTTP协议的特点发起拒绝服务攻击。 5. **HTTP指纹识别技术**:介绍如何通过HTTP请求中的特定信息来识别服务器或客户端的身份。 6. **其他**:...

    Http协议详解(中文版)

    例如,HTTP分析器可以用来检测网络攻击,HTTP协议的Content-Length限制漏洞可能被利用造成拒绝服务攻击。此外,还介绍了Http指纹识别技术,这是一项识别Web服务器的技术,可以用来了解目标服务器的软硬件配置。 ...

    HTTP 协议详解

    - **利用HTTP协议的特性进行攻击的构思**:探讨了如何利用HTTP协议的某些特性实施拒绝服务攻击。 - **Http指纹识别技术**:介绍了识别Web服务器、应用程序框架等的技术手段。 - **其他相关技术**:包括但不限于HTTP...

    Http协议简介

    1960年美国人Ted Nelson构思了一种通过计算机处理文本信息的方法,并称之为超文本(hypertext),这成为了HTTP超文本传输协议标准架构的发展根基。Ted Nelson组织协调万维网协会(World Wide Web Consortium)和...

    Unity 3D虚拟现实游戏开发:场景构思.doc

    构思就是神想,构思一切可利用的素材、资料,把视觉 物体形象化,突出主题作品风格。动画场景在影片中起到了交代时空关系的作用,动画场景必须以剧本为依据,营造特定的意境与情绪基调,为角色的刻画服务。 第一节 ...

    构思编辑器教程

    构思编辑器教程,关于微信编辑器的使用操作方法

    高中通用技术苏教版必修技术与设计4.2任务一进行设计分析,构思设计方案.pdf

    高中通用技术苏教版必修技术与设计4.2任务一进行设计分析,构思设计方案.pdf

    机构设计实用构思图册

    《机构设计实用构思图册》一书,是机械设计领域内一本具有极高实用价值的参考资料,它不仅汇集了大量的设计构思与实例,而且按照机构的形式、机能、用途进行了分类,为机械设计人员提供了丰富的设计灵感和实用数据。...

    智慧公安发展构思及建设解决方案.pptx

    摘要:本节总结了智慧公安发展构思及建设解决方案的要点,涵盖了智慧公安发展阶段的挑战、建设目标、建设思路、总体架构等方面,旨在提高公安机关的核心战斗力和服务质量。 一、智慧公安发展阶段的挑战 (一)任务...

    我国煤炭发展未来三级版图构思

    ### 我国煤炭发展未来三级版图构思 #### 一、引言 随着全球气候变化的加剧和可持续发展理念的深入推广,煤炭作为我国重要的基础能源之一,面临着转型升级的重大挑战。为了应对这一挑战,我国提出了煤炭发展未来的三...

    保密协议保密协议保密协议保密协议

    以下是保密协议的一些关键知识点: 1. **信息类型**:保密协议通常涵盖了四种主要类型的信息: - 公司拥有的计算机软件及其介质。 - 关于公司或其客户的机密性质的任何信息或材料,特别是与计算机软件产品相关的...

    QQ客户端全源码(使用腾讯W.QQ协议)

    简单:利用官方的rpcservice.js文件能看懂逻辑交互类似(MVC里的M和C),views.js相当于V。复杂:数据相对复杂,没有json那样的美观,一句话简陋得不能再简陋(需要靠读rpcservice.js和dump结果分析)。 3、我下次...

    机构设计实用构思

    螺纹连接是利用螺纹零件进行连接的一种方式,具有结构简单、拆装方便的特点。常见的螺纹类型有普通螺纹、梯形螺纹、锯齿形螺纹等。设计时需考虑的主要因素包括:螺纹的类型、精度等级、材料选择以及连接的可靠性等。...

    智慧公安发展构思及建设解决方案78页[PPT].pptx

    智慧公安发展构思及建设解决方案 智慧公安发展构思及建设解决方案是基于当前公安信息化建设的现状和挑战,提出的发展构思和解决方案。该方案旨在推动公安机关的信息化建设,提高公安工作的效率和质量,满足社会治安...

    微信编辑器—构思编辑器元旦圣诞排版素材

    微信编辑器,关于构思编辑器元旦圣诞排版素材介绍

    家具设计创新构思方法培训课件.pptx

    家具设计创新构思方法是设计行业中至关重要的一环,它关乎到产品的独特性、实用性和艺术性的融合。创新构思设计方法不仅仅是单纯的设计技巧,更是一种思维方式的体现。设计无目的的思考和无方向的创新往往会导致设计...

Global site tag (gtag.js) - Google Analytics