J2EE WEBWORK FRAMEWORK安全隐患

原创 2007年10月14日 00:03:00
转载需注明作者,未经作者同意,不得用于任何形式的商业活动

WebWork是由OpenSymphony组织开发的,致力于组件化和代码重用的拉出式MVC模式J2EE Web框架。
框架本身就是抽象空实现的!一般很少会给程序带来0day漏洞,但是因为WebWork的设计方式 潜伏着一定的安全隐患.开发者一点要注意
下面我们来分析他的设计,以及流程逻辑...
首先 xwork.xml是它的一个核心配置文件 里面记载着 存储表单数据的javabean,处理业务逻辑的action,流程跳转的到jsp视图处理
OK 以下有一个配置
<action name="HackerTest" class="cn.isto.HackerTest">
<result name="success">HackerReturn.jsp</result>
</action>

而一般 提交一个请求的时候 容器就会把请求交给 前端控制的Servlet来进行分发
com.opensymphony.webwork.dispatcher.ServletDispatcher
一般是配置这个默认的Servlet
当我们提交请求
http://127.0.0.1/WebWorkHacker/HackerTest.action
前端控制器就会把我们的URL分解出 /HackerTest.action 然后去 对应的 <action> 那里查找
发现这个请求 需要交给 cn.isto.HackerTest 这个类来处理!
而 WebWork内部是采用了反射机制 创建 cn.isto.HackerTest 这个类的对象!然后调用其
public String execute() 这个签名的方法来处理流程操作! 当然
cn.isto.HackerTest 最简单的需要实现 com.opensymphony.xwork.Action 或者 继承com.opensymphony.xwork.ActionSupport
一切很正常运行得很正常!
但是~WebWork提供了另外一个种形式来访问处理业务的Action
就是 Name!Method.action (在这里 方便了自己 也方便了别人)
而官方文档则说明
需要在xwork.xml 里面配置
<action name="HackerTest2" class="cn.isto.HackerTest" method="inputMethod">
<result name="input">ch3sampleMethod.jsp</result>
</action>
这样 当你的请求
http://127.0.0.1/WebWorkHacker/HackerTest2!inputMethod.action的时候
就会查找name="HackerTest2"对应的类cn.isto.HackerTest,创建这个类的对象!然后调用其inputMethod方法
该方法需要是一个 public String 空参数签名
也就是说
public String inputMethod(){...}
以下是我们具体的类代码

public class HackerTest extends ActionSupport {
public String execute(){
exec="your run execute method/n";
return SUCCESS;
}
public String inputMethod(){
System.out.println("kj021320");
return INPUT;
}
public void testWebWork(){
System.out.println("void hack attack...");
}
public Object ooo(){
System.out.println("Object hack attack..");
return new Object();
}
public void prvtestWebWork(String str){
System.out.println("str arg hack attack..");
}
public String getExec(){
return exec;
}
}

而经过一段测试的时候发现!问题出来了!我们根本不需要在xwork.xml中加入配置信息
我们直接在URL 里面请求
http://127.0.0.1/WebWorkHacker/HackerTest!方法名字.action
这样就可以随意调用类中只要是public 空参数的方法,
当返回值是void的时候不显示任何信息,其方法已经被执行了
而非String类型的话则会报告异常!其方法也被执行了!主要是返回给调用者的时候需要把
类型转换为字符串,所以会有异常!

换一个用PHP的说明方式吧!

<?
$fun=$_GET['method'];
if(isset($fun)){
$fun();
}
?>

当我们提交 http://127.0.0.1/kj021320.php?method=phpinfo 这样就会出现问题了

一般在黑盒测试上面利用价值有限!但在代码审核,白盒测试上面就应该好好留意这个问题了!
特别是一些网上提供的WEB程序 采用了WEBWORK的话

 

RFID系统安全隐患解决方案优缺点的分析

随着物联网的发展,“无所不在”的通信理念正在日益成为现实。受此影响,作为泛在通信核心技术—— RFID,有了长足发展,如今在各个行业都可以看到RFID的身影。但是,在RFID应用中还存在若干问题,严重...
  • u013038590
  • u013038590
  • 2015年04月29日 20:07
  • 2135

区块链开源安全漏洞分析报告

区块链技术已经不容置疑的成为科技和金融领域炙手可热的新技术。今年 6 月,包括中国代表在内的来自 90 个国家的央行及监管机构代表齐聚华盛顿美联储总部,共同探讨区块链技术的发展和应用。全球对区块链...
  • owndiandian
  • owndiandian
  • 2017年01月03日 09:37
  • 1386

Cookie在网站登录所带来的安全隐患及解决办法

最近几天屡次出现登录CSDN账户登陆问题,具体的问题是:在以往保留的正确的账号和密码的界面上自动登录,登录到了一个不知名的账号上。 于是我便开始寻找正确的解决方案之路: 1. 在账号输入界面重新输...
  • Echo_Ana
  • Echo_Ana
  • 2016年09月22日 10:54
  • 2543

快速扫描局域网中安全隐患端口

  • 2011年07月15日 14:33
  • 256KB
  • 下载

IT安全隐患排查系统

  • 2016年10月24日 11:14
  • 1.15MB
  • 下载

计算机网络安全隐患与防范策略探讨

  • 2011年11月29日 00:33
  • 28KB
  • 下载

高校校园网络安全隐患及防范对策

  • 2009年12月27日 20:10
  • 35KB
  • 下载

VSS共享文件夹安全隐患

  • 2013年02月22日 15:00
  • 133KB
  • 下载

Linux服务器的安全隐患 简单设置

  • 2015年03月09日 13:37
  • 89KB
  • 下载

周亚金:定制安卓操作系统的安全隐患

  • 2014年05月29日 14:07
  • 1.54MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:J2EE WEBWORK FRAMEWORK安全隐患
举报原因:
原因补充:

(最多只允许输入30个字)