中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么進行CVE-2020-1938漏洞分析

發布時間:2021-12-24 21:37:20 來源:億速云 閱讀:220 作者:柒染 欄目:網絡安全

怎么進行CVE-2020-1938漏洞分析,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

一、環境搭建

環境搭建這部分直接使用brew包管理器進行Tomcat安裝,版本為8.5.47如下圖所示:

怎么進行CVE-2020-1938漏洞分析

與IDEA進行遠程調試的設置部分略過,搭建完成后查看端口開啟狀況如下圖所示:

怎么進行CVE-2020-1938漏洞分析

二、AJP協議學習

既然CVE-2020-1938漏洞是通過Tomcat的AJP協議進行攻擊,那么首先應先對AJP協議進行學習,了解它是啥、用來干啥的。

這里附上Apache官網上對于AJP協議部分的AJP官方文檔。

怎么進行CVE-2020-1938漏洞分析

怎么進行CVE-2020-1938漏洞分析

怎么進行CVE-2020-1938漏洞分析

通過閱讀官方文檔與server.xml文檔后可知,Tomcat服務器對外監聽兩個端口用于與客戶端進行正常的訪問通信,如上圖所示,分別監聽8080端口與8009端口,其中8080端口為我們所熟知的正常進行HTTP協議通信的端口,8009端口則是使用AJP協議進行通信,使用二進制格式來傳輸可讀性文本,能降低 HTTP 請求的處理成本,因此主要在需要集群、反向代理的場景被使用。

怎么進行CVE-2020-1938漏洞分析

通過閱讀文檔可知AJP協議的請求報文結構、Headers的定義方式、屬性的代碼值等等,這部分在接下來的漏洞代碼分析中還會再回來查找。

三、漏洞分析

漏洞分析這一塊是跟著最早放出的安恒 Tomcat-Ajp協議漏洞分析文章做的,個人對該分析文章進行學習與漏洞細節補充,下載Tomcat源碼進行分析。

定位到漏洞核心代碼部分在org.apache.coyote.ajp.AjpProcessor.java文件的778~812行,如下所示:

怎么進行CVE-2020-1938漏洞分析

首先,對第一個紅框位置代碼進行分析,先為attributeCode進行賦值后將比較結果作為循環條件;在Constants.java文件中查詢到Constants.SC_A_ARE_DONE的值為0XFF,在官方手冊中查詢到屬性代碼為請求終止,則這是個恒True的判斷,循環執行下面的switch判斷代碼。

怎么進行CVE-2020-1938漏洞分析

對第二個紅框位置代碼進行分析,當case到Constants.SC_A_REQ_ATTRIBUTE時會進入下面的判斷,那么這個Constants.SC_A_REQ_ATTRIBUTE又是什么呢?在Constants.java中查找到SC_A_REQ_ATTRIBUTE = 10;同時還有一行注釋聲明此用于不在上面列表中的屬性。

怎么進行CVE-2020-1938漏洞分析

繼續返回官網手冊進行查找,果然在官網的屬性說明中存在著如下圖所示的聲明。也就是說,如果要發超出上述基礎屬性以外的值,都可以通過req_attribute(0X0A)來設置其屬性名和值來發送。

怎么進行CVE-2020-1938漏洞分析

那么第三個紅框部分的代碼的含義就已經顯而易見了,我們可以將AJP里面的內容取出來設置成request對象的Attribute屬性。

在上面部分設置完成request對象之后一直沒搞清楚是怎么傳進容器的,直到看到了淺析Tomcat之CoyoteAdapter這篇文章:

Adapter連接了Tomcat連接器Connector和容器Container.它的實現類是CoyoteAdapter主要負責的是對請求進行封裝,構造Request和Response對象.并將請求轉發給Container也就是Servlet容器.

怎么進行CVE-2020-1938漏洞分析

終于將安恒漏洞分析文章中的getAdapter().service(request,response)串聯起來,到這里之后還需要注意Servlet的處理,可以在web.xml中看到在其中配置了兩個servlet處理,DefaultServletJSP Servlet,越精確的路徑越優先匹配,而/匹配所有,匹配程度模糊所以優先級最低,當其它的Servlet匹配不成功時便由DefaultServlet來進行兜底。

怎么進行CVE-2020-1938漏洞分析

跟進Tomcat_lib中DefaultServlet.class文件,通過serveResource方法來獲取資源文件。

怎么進行CVE-2020-1938漏洞分析

通過getRelativePath來獲取資源文件路徑。

怎么進行CVE-2020-1938漏洞分析

然后再通過控制ajp控制的上述三個屬性來讀取文件,通過操控上述三個屬性從而可以讀取到/WEB-INF下面的所有敏感文件,不限于class、xml、jar等文件。

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

肇源县| 台南县| 和平区| 贵德县| 庆阳市| 玉门市| 永嘉县| 武川县| 宁晋县| 洞口县| 廊坊市| 石嘴山市| 肇州县| 二连浩特市| 达拉特旗| 桃江县| 阿瓦提县| 淮北市| 焦作市| 福清市| 玛多县| 肥东县| 广东省| 谢通门县| 巴楚县| 天水市| 临夏市| 安多县| 景洪市| 株洲市| 邓州市| 涡阳县| 阳原县| 华阴市| 通江县| 乳源| 林州市| 武冈市| 类乌齐县| 吉首市| 涟源市|