成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

繞過Apache httpproxy 繼續DOS TOMCAT/JBOSS

安全 黑客攻防
本文通過案例講述介紹了如何繞過繞過Apache httpproxy繼續DOS TOMCAT/JBOSS的過程,在實際使用中,只有小公司喜歡把tomcat放在最外面。大企業都喜歡在tomcat外面使用apache等web server轉發,以便獲得更好的響應速度,或者為了分離靜態文件,減輕服務器壓力。

tomcat在外面使用apache的情況,你會發現使用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:

繞過Apache httpproxy 繼續DOS TOMCAT/JBOSS

 

遇到這樣的HTTP頭,apache會因為有”transfer-encoding: buffered”,則自動攔截下來,自己處理掉這個數據包,不交給tomcat處理,并直接返回錯誤。這是出于apache自己的原因造成的,但是這不重要。重要的是,這個攔截的機制,能否被繞過。TOMCAT仍然老老實實的在apache后面等候數據包,如果能繞過,它就會再次忠實的睡大覺。要繞過apache的“自動攔截”(這個名字好記點),就必須讓apache不認識這個頭。

發個數據包,這是攔截后返回的信息:

繞過Apache httpproxy 繼續DOS TOMCAT/JBOSS 

 

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”,“#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 

把這一行之前的字符

繞過Apache httpproxy 繼續DOS TOMCAT/JBOSS

注意括起來的兩個地方,把它們順序分別顛倒一下,兩個地方的“0D 0A”都改為“0A 0D”。改后如下:

繞過Apache httpproxy 繼續DOS TOMCAT/JBOSS

原來包是這樣的:

Connection: keep-alive 這是字段1

transfer-encoding: buffered 這是字段2

Content-Length: 145 這是字段3

三個字段其實屬于同一個字符串,他們的間隔本來是“\r\n”,我們改為“\n\r”。一旦這個包發給apache后,apache認為只有一個字段”Connection”過來了,接著就把這個字段原封不動的交給tomcat。

可憐的tomcat看到這個包,卻認為它是三個字段,解開了這個炸藥包,所以,砰。。。掛了

現在把我改后的文件,使用nc提交上去:

繞過Apache httpproxy 繼續DOS TOMCAT/JBOSS

當有信息返回時,再看看tomcat的控制臺,已經一大堆異常了,測試apache后面的JBOSS也是一樣,統統掛掉。

繞過Apache httpproxy 繼續DOS TOMCAT/JBOSS

所以,遇到這樣的漏洞,能對服務器造成極大危害,而我們的架構又剛好符合官方描述的“安全狀態”時,可以放緩處理,但是不能不處理。很多官方最喜歡做的,就是完全站在開發產品的角度,不懂安全的含義,就直接針對POC,出一套解決方案。無數的事實證明,這樣的方案,是最容易被繞過的。

apache的http proxy后面的tomcat和JBOSS,需要及時修補,大家就不要存在僥幸心理了。

【編輯推薦】

  1. 病毒感染計算機淪為傀儡
  2. 防病毒的未來在“云”中
  3. 防治病毒攻擊 念好中小企業“生意經”
責任編輯:佚名 來源: 比特網
相關推薦

2010-11-22 11:35:17

2009-07-06 17:49:02

Apache的配置JBoss的配置

2014-07-30 14:35:33

LinuxApache

2009-06-15 14:16:17

JBoss與Tomca

2011-04-07 09:06:31

Tomcat

2009-06-10 13:43:05

mod_jk整合Apa

2013-04-26 10:59:54

目錄遍歷漏洞

2012-05-30 10:09:57

ApacheTomcat

2012-05-18 15:52:49

JavaApacheTomcat

2009-06-11 13:28:09

JBossjBPM安裝配置jBPM tomcat

2011-02-25 11:16:38

ApacheTomcat

2017-02-12 22:29:59

2011-12-07 10:34:29

JavaTomcat

2009-06-12 13:40:25

JBoss下載JBoss安裝

2009-06-15 17:31:07

2013-08-08 10:09:22

ApacheTomcatJavaEE 7

2014-04-18 09:55:49

Tomcat 8NIO 2

2009-08-05 22:19:15

2011-04-18 10:04:24

apachetomcat

2014-09-12 17:47:36

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 9999在线视频 | 久久免费国产视频 | 久草在线青青草 | 中文字幕蜜臀av | 久久精品无码一区二区三区 | 日韩电影中文字幕 | 精品在线播放 | 日韩中文字幕在线观看 | 日日干日日操 | 欧美日韩综合视频 | 国产中文在线观看 | 男人天堂av网站 | 99热欧美| 视频在线一区二区 | 精品亚洲一区二区三区四区五区高 | 伊人网99 | 午夜精品一区二区三区在线视频 | 亚洲日本一区二区三区四区 | 日韩三区 | 超碰人人91 | 成人影院网站ww555久久精品 | 国产精品久久久久久久久久久新郎 | 九九在线视频 | 国产精品1区2区 | 成人在线精品视频 | 欧美区日韩区 | 亚洲视频中文字幕 | 一级毛片免费完整视频 | 毛片免费看| 91人人看| 精品久久香蕉国产线看观看亚洲 | 欧美日韩视频在线播放 | 欧美一区2区三区4区公司二百 | 久久久久国产精品 | 欧美亚州综合 | 国产精品日产欧美久久久久 | 日韩精品视频在线 | 一级毛片视频在线 | 久久久成人网 | 日韩免费网站 | 91精品国产一区二区三区 |