从长远的角度讲,一个完整的安全方案,应该是和现有架构本身的特性,是分开的,它并不能因为现有应用架构拦截了攻击,于是自己就表示影响不大。如果安全方案总是依靠应用现有的特性,那就要承受可能被绕过的隐患,这种隐患,导致我们总有一天,会不得不把补丁老老实实的打上去。如本文就是一个很好的例子。
笔者根据TOMCAT的补丁,分析出了攻击未修补版本的POC,相信不少人体验了一把。然而在实际使用中,只有小公司喜欢把tomcat放在最外面。大企业都喜欢在tomcat外面使用apache等web server转发,以便获得更好的响应速度,或者为了分离静态文件,减轻服务器压力。
对于这样的情况,你会发现使用笔者给的POC,这里是无效的,关于这一点,官方如下描述“This flaw is mitigated if Tomcat is behind a reverse proxy (such as Apache httpd 2.2) as the proxy should reject the invalid transfer encoding header.”他说如果你的tomcat外面还有一层web server做转发,就会减轻这个漏洞带来的危害。
也许大家看到这个,放心了很多,就没有修补。
官方这么讲,是什么原理呢?我们看下攻击的POC:
POST /CodePK/updateinfo HTTP/1.1 Host: localhost Keep-Alive: 300 Connection: keep-alive transfer-encoding: buffered Content-Length: 145 u_uid=admin&u_pwd0=123456&u_pwd1=&u_pwd2=&u_email=rfes%40rfes.com&u_location=B2B&u_lang=1&u_web=22222222&u_quote=ffvd&u_submit=%E6%8F%90%E4%BA%A4 |
遇到这样的HTTP头,apache会因为有”transfer-encoding: buffered”,则自动拦截下来,自己处理掉这个数据包,不交给tomcat处理,并直接返回错误。这是出于apache自己的原因造成的,但是这不重要。重要的是,这个拦截的机制,能否被绕过。TOMCAT仍然老老实实的在apache后面等候数据包,如果能绕过,它就会再次忠实的睡大觉。要绕过apache的“自动拦截”(这个名字好记点),就必须让apache不认识这个头。
发个数据包,这是拦截后返回的信息:
A:\tools>nc -vv localhost 80 < aa.txt DNS fwd/rev mismatch: kxlzx != localhost billgates [127.0.0.1] 80 (http) open HTTP/1.1 500 Internal Server Error ……..省略 The server encountered an internal error or misconfiguration and was unable to complete your request. …….省略 |
Apache返回了500 Internal Server Error,如果去掉那个头”transfer-encoding: buffered”,返回就200 OK了,但是也就打不死了。
看起来这是个死循环,永远搞不定,所以tomcat官方也说了能减轻危害。
但是,如果apache和tomcat对某些字符的理解不一致,可能会apache放过某些字符,但是tomcat却刚巧认识,又如果这个字符刚好能影响到这里,就会bypass这个所谓的“防御架构”,所以我们找找看有没有这样“猥琐”的字符存在。
Apache和Tomcat实现原理不一样(废话),所以,对一些字符可能理解不一致,是正常的。
我们先看看大家对http heads的分段是如何理解的,我查到“CRLF”,从apache源码中看到,它把crlf定义为“\r\n”,转换为也就是16进制的“0D 0A”(为什么提16进制等下讲),这个供参考:https://svn.apache.org/repos/asf/httpd/flood/trunk/flood_test.c
其实我不熟悉C,也不知道这段主要是做什么的,但是看到它的确定义了
“#define CRLF "\r\n"”,只有这一个对crlf的定义。
这有什么用呢?这其实表示,apache所理解CRLF,就是“\r\n”,它不认识“\n\r”(看仔细点,反过来了)。
悲剧的是,tomcat和JBOSS认识它们,并且很喜欢它们!
Tomcat和jboss对这个东西的定义含义是
“If (xx==’\r’|| xx==’\n’)”
就是说,不但把字符反过来写它们认识,就算拆成骨头,TOMCAT和JBOSS也认识。
知道了这个关键点,下面思路就有了。我们把”transfer-encoding: buffered”这个字段,伪装成其他字段的一部分,让apache放过去,交给tomcat处理就可以了。
POC:
于是我使用16进制编辑器,UltraEdit打开我复制出来的数据包文件aa.txt
找到
transfer-encoding: buffered
把这一行之前的字符
注意括起来的两个地方,把它们顺序分别颠倒一下,两个地方的“0D 0A”都改为“0A 0D”。改后如下:
原来包是这样的:
Connection: keep-alive 这是字段1 transfer-encoding: buffered 这是字段2 Content-Length: 145 这是字段3 |
三个字段其实属于同一个字符串,他们的间隔本来是“\r\n”,我们改为“\n\r”。一旦这个包发给apache后,apache认为只有一个字段”Connection”过来了,接着就把这个字段原封不动的交给tomcat。#p#
可怜的tomcat看到这个包,却认为它是三个字段,解开了这个炸药包,所以,砰。。。挂了
现在把我改后的文件,使用nc提交上去:
责任编辑:佟健
来源: IT专家网 Apache DoS
分享到微信
微信扫码分享
分享到微博 相关推荐
绕过
Apache httpproxy
继续
DOS
TOMCAT/JBOSS 本文通过案例讲述介绍了如何绕过绕过Apachehttpproxy继续DOSTOMCATJBOSS的过程,在实际使用中,只有小公司喜欢把tomcat放在最外面。大企业都喜欢在tomcat外面使用apache等webserver转发,以便获得更好的响应速度,或者为了分离静态文件,减轻服务器压力。
2011-03-15 08:54:43
四两拨千斤
Apache
HTTP
DoS工具解析 国外安全人员昨天发布了一个很有意思的HTTPDos攻击工具。这个工具能够通过耗尽服务器的可用连接,对Apache(以及其它一些服务器,见下文)进行拒绝服务攻击(DenialofServiceattack)。
2009-06-26 10:07:16
http协议与
http
代理 TCPIP是用于计算机通信的一个协议族。TCPIP协议族包括诸如Internet协议、地址解析协议、互联网控制信息协议、用户数据报协议、传输控制协议、路由信息协议、Telnet、简单邮件传输协议、域名系统等协议。
2014-10-22 09:36:41
TCP IP
Apache
Tomcat 7.0.12 发布 ApacheTomcat7.0.12发布了,该版本在7.0.11的基础上修复了一些bug.
2011-04-07 09:06:31
Tomcat
apache/
apache
tomcat目录遍历漏洞的防范 如果apacheapachetomcat配置文件没有处理好,会给站点带来相当大的隐患,目录遍历漏洞,会将站点的所有目录暴露在访问者眼前,有经验的开发者或hacker们可以从这些目录得知当前站点的信息,如开发语言、服务器系统、站点结构,甚至一些敏感的信息。
2013-04-26 10:59:54
目录遍历漏洞
HTTP
代理与SPDY协议 HTTP代理是最经典最常见的代理协议。其用途非常广泛,普遍见于公司内网环境,一般员工都需要给浏览器配置一个HTTP代理才能访问互联网。起初,HTTP代理也用来翻越“功夫网”,但是因为“功夫网”不断发展,普通的HTTP代理早已无效了。
2013-07-09 14:36:24
Apache
Tomcat Connectors 1.2.36 发布 ApacheTomcat项目组今天发布了1.2.36版本,该版本修复了1.2.35的一些小bug.详细内容请进官网。
2012-05-18 15:52:49
Java Apache Tomcat
Apache与
Tomcat集群配置 本文Apache+Tomcat集群配置基于最新的Apache和Tomcat,同时也推荐了大量相关的文章,详细请看内容
2012-05-30 10:09:57
Apache Tomcat
Apache+
Tomcat集群配置详解 本篇文章就Apache和Tomcat集群配置做出了详细解释,并给出代码方便理解。
2011-02-25 11:16:38
Apache Tomcat
HTTP
代理原理及实现(二) 在上篇《HTTP代理原理及实现(一)》里,我介绍了HTTP代理的两种形式,并用Node.js实现了一个可用的普通隧道代理。普通代理可以用来承载HTTP流量;隧道代理可以用来承载任何TCP流量,包括HTTP和HTTPS。今天这篇文章介绍剩余部分:如何将浏览器与代理之间的流量传输升级为HTTPS。
2015-12-02 15:29:32
HTTP 网络协议 代理原理
HTTP
代理原理及实现(一) Web代理是一种存在于网络中间的实体,提供各式各样的功能。现代网络系统中,Web代理无处不在。我之前有关HTTP的博文中,多次提到了代理对HTTP请求及响应的影响。今天这篇文章,我打算谈谈HTTP代理本身的一些原理,以及如何用Node.js快速实现代理。
2015-12-02 14:10:56
HTTP 网络协议 代理原理 借助
HTTP通过SSH
绕过Linux防火墙 需要远程工作的看一下。使用这个有用的开源解决方案,从任何地方快速地连接和访问你的所有设备。
2020-08-11 08:25:21
HTTP SSH Linux防火墙 通过JMX访问破坏
Apache
Tomcat 本文主要关注Tomcat服务器的一些配置问题,可以将Java管理扩展(JMX)服务暴露到外部网络中,来用于远程监视和管理的目的。
2017-02-12 22:29:59
Apache
Tomcat 6.0.35 发布 附下载 ApacheTomcat6.0.35主要是安全方面的补丁和一些bug修复,建议所有Tomcat6的用户都应该升级到该版本。
2011-12-07 10:34:29
Java Tomcat
Apache HTTPServer与
Tomcat/JBoss的配置 本文介绍ApacheHTTPServer与TomcatJBoss的配置。通过Apache的配置以及TomcatJBoss的配置,可以达成整合与请求分发的功能。
2009-07-06 17:49:02
Apache的配置 JBoss的配置 黑客针对
HTTP请求
绕过IDS的八种方式 当黑客在攻击时可以伪装自己,饶过IDS的检测,主要是针对IDS模式匹配所采用的方法来逃避IDS的监视。本文就主要介绍针对HTTP请求来绕过IDS检测的方式。
2010-09-08 15:35:35
Apache服务器漏洞引发小流量
DoS攻击 安全专家罗伯特·汉森(RobertHansen)近日表示,Apache和其它Web服务器存在一个重大安全漏洞,可被黑客利用发起一种新拒绝服务(DoS)攻击。
2009-08-05 22:19:15
HTTP被动扫描
代理的那些事 这篇文章我们从小白的角度粗略的聊聊HTTP代理到底是如何工作的,在实现被动扫描功能时有哪些细节需要注意以及如何科学的处理这些细节。
2019-09-10 12:59:45
Apache
Tomcat 8 中的 NIO 2 ApacheTomcat8有一个新的基于NIO2的连接器正接近正常的使用状态,而现在被标记成测试版。NIO2不仅向Servlet3。1的异步IO看齐,它还不止这一个好处。
2014-04-18 09:55:49
Tomcat 8 NIO 2
网站安全
1108内容
数据安全
2962内容
应用安全
5661内容
云安全
1830内容
全部话题
警惕!2023年十大最常见的漏洞利用 养成密码管理习惯,保障个人数字安全 2024年网络安全趋势:人工智能、云计算和威胁情报 大语言模型漏洞缓解指南 北京多家公司因不履行网络安全保护义务被处罚! 2024年热门网络安全运营工具/方案推荐 在Ansible中编写剧本实现批量服务器安全加固 深入浅出SSH隧道穿透
疯狂勒索500强和美国政府,疯猫BlackCat靠什么年入3亿? 你需要尽早知道的15个开源网络安全工具 为窃取Android手机PIN码,这个恶意软件路子有多野? 攻击者利用已有六年历史的 Office 漏洞传播间谍软件 关于网络安全预算的事实和误解
网络运维智能化?瞻博网络有奇招! 2023年数据中心热门技术回顾 2023-12-18 09:33:33 2023年第十八届中国企业年终评选榜单公布! 2023-12-28 20:12:38 我收藏的内容
微博
QQ
微信
复制链接
微信扫码分享
北京市海淀区中关村南1条甲1号ECO中科爱克大厦6-7层
北京市公安局海淀分局备案编号:110108002980号
营业执照 京ICP备09067568号
Copyright © 2005-2024 .COM 京ICP证060544 版权所有 未经许可 请勿转载
新浪科技 腾讯科技 网易科技 凤凰科技 驱动科技 科技行者 TechWeb 艾瑞网 站长之家 速途网 中国经济新闻网 IT之家 工联网 极客公园 236视频会议 中国IDC圈 企业网D1Net 投资界 次方元 火山引擎
技术栈公众号
技术栈公众号
业务
速览
在线客服
媒体 CIOAge HC3i 社区 博客 鸿蒙开发者社区 教育 学堂 精培 企业培训 CTO训练营
A:\tools>nc -vv localhost 80 < aa.txt DNS fwd/rev mismatch: kxlzx != localhost billgates [127.0.0.1] 80 (http) open HTTP/1.1 404 Not Found Date: Sat, 24 Jul 2010 01:48:34 GMT Server: Apache-Coyote/1.1 Content-Type: text/html;charset=utf-8 Content-Length: 1006 Keep-Alive: timeout=5, max=100 Connection: Keep-Alive |
网页标题:绕过Apache http代理继续DoS tomcat
本文地址:http://www.csdahua.cn/qtweb/news4/356604.html
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网