[點(diǎn)晴永久免費(fèi)OA]用友U8 Cloud 任意文件讀取漏洞分析(CNVD-2025-07265)
源代碼如下 ![]() 獲取HTTP數(shù)據(jù)包中的輸入流,存入輸出流in2中,然后調(diào)用readObject()方法對輸出流in2進(jìn)行反序列化,轉(zhuǎn)換對象為一個(gè)hashmap數(shù)組headInfo,從headInfo中獲取dsName和operType,當(dāng)operType不為upload時(shí),調(diào)用doDownLoadFile(headInfo, response); 跟進(jìn)doDownLoadFile方法 ![]() 從headInfo中獲取參數(shù)path,隨后初始化文件系統(tǒng)的操作類,調(diào)用downLoadFile方法 跟進(jìn)downLoadFile方法 ![]() 根據(jù)dnName進(jìn)行FileSpace初始化,雖有調(diào)用outNodeFileData方法 ![]() 跟進(jìn)方法outNCFileData, ![]() 首先調(diào)用validatePathString對傳入的路徑nodepath進(jìn)行判斷,沒有校驗(yàn)絕對路徑類型和路徑穿越字符 ![]() 隨后直接調(diào)用ps = getNativeConn(con).prepareStatement("select contentdata from sm_pub_filesystem where path = ?"); 實(shí)現(xiàn)從數(shù)據(jù)庫中映射路徑獲取讀取的文件內(nèi)容,并調(diào)用new OutNCFileDataProcessor(out).handleResultSet(rs); 將讀取內(nèi)容寫入響應(yīng)對象,整個(gè)過程中沒有對傳入的反序列化數(shù)據(jù)校驗(yàn),且沒有校驗(yàn)獲取的path是否可以路徑穿越以及是否通過絕對路徑讀取敏感文件內(nèi)容 ![]() 閱讀原文:https://mp.weixin.qq.com/s/4YlRUTLAD5p-fVt4_DaMgA 該文章在 2025/9/20 9:42:25 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |