待補充
該漏洞原理為前段傳入的execution欄位值後,服務端通過解碼還原execution的值,並通過呼叫readobject還原物件,而又因為解碼過程呼叫的aes解密為硬編碼key,從而導致反序列化漏洞。
正常的請求
從spring mvc的的http請求入口處分析(org/springframework/web/servlet/frameworkservlet.class),該請求為post方法,因此直接呼叫dopost方法處理該請求。
跟進processrequest方法,doget和dopost都要去呼叫processrequest,該方法主要做的事情包括一步請求,呼叫doservice抽象模板方法。
跟進doservice方法,request設定完相關的屬性後,開始呼叫dodispatch做真正的處理
最終的處理邏輯在ha.handle中
跟進handle方法,getflowexecutionkey為獲取excution引數中的字串內容,通過resumeexecution進行反序列化
在resumeexecution將序列化字串進行反序列化進行還原
呼叫decode做解碼+反序列化的操作
經過decrypt進行解碼,然後進行readobject進行反序列化操作
上圖的第一步中,呼叫自身的cipherbean的的decrypt方法進行解密,下圖中通過例項化bufferedblockcipherbean設定加密的各個屬性,然後進行cipherbean賦值
其解密方式大概流程為url解碼->base64解碼->從keystore讀取秘文解密出真正的金鑰->解密密文
pochost: 192.168.52.3:8081
content-length: 1269
cache-control: max-age=0
upgrade-insecure-requests: 1
origin:
accept-encoding: gzip, deflate
accept-language: zh-cn,zh;q=0.9
cookie: jsessionid=e23bf7a599a46a4bf468bd5ed0d19b4b
connection: close
cmd:whoami
(1)從keystore中獲取加密後的金鑰,並解密出金鑰。密碼為changeit,alias為aes128
(2)aes解密
解密方式為aes/cbc/pkcs7,金鑰為上圖中的解密出來的金鑰。
(3)gzip解碼
Apache SSI 遠端命令執行漏洞 漏洞復現
如果目標伺服器開啟了ssi功能,那麼shtml檔案將可以執行任意命令。如果上傳檔案程式限制了php檔案的上傳,且沒有限制shtml檔案上傳,我們可以上傳乙個shtml檔案,並利用語法執行任意命令。ssi詳細講解請參考 什麼是ssi。ssi漏洞挖掘思路請參考 注入漏洞。該環境使用vulhub搭建,該漏...
通達OA 11 2後台getshell漏洞復現
通達oa 11.2後台getshell漏洞復現 一 漏洞描述 通達oa 11.2 組織 管理員 附件上傳處存在任意檔案上傳漏洞,結合 系統管理 附件管理 新增儲存目錄 修改附件上傳後儲存的路徑,最終導致getshell 二 漏洞影響版本 通達oa 11.2 三 漏洞復現 2 使用admin,密碼為空...
復變函式視覺化 復積分
復變函式的積分 z0 z1f z dz f z z int f z dz sum f delta z delta z z0 z1 f z dz f z z每一小段的復數值 乙個向量 乘以中間的某個值 積分法則 仿真實變函式積分 常數可以提出來 積分可以分段積分留數 用積分計算泰勒展開的係數 積分與路...