日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

J2EE WEBWORK FRAMEWORK安全隐患

發布時間:2023/12/18 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 J2EE WEBWORK FRAMEWORK安全隐患 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

TEAM : I.S.T.O
AUTHOR : KJ021320
轉載需注明作者,未經作者同意,不得用于任何形式的商業活動

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的話

全文完

?

轉載于:https://www.cnblogs.com/springside-example/archive/2007/10/11/2529951.html

總結

以上是生活随笔為你收集整理的J2EE WEBWORK FRAMEWORK安全隐患的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。