34
A
回答
43
基礎很簡單。 Windows有一個DLL的搜索路徑,與找到可執行文件的$ PATH非常相似。如果您可以找出沒有絕對路徑的應用程序所需的DLL(觸發此搜索過程),則可以將敵對DLL放置在搜索路徑的更高處,以便在實際版本之前找到它,並且Windows將很高興將您的攻擊代碼提供給應用程序。
所以,讓我們假設你的系統的DLL搜索路徑看起來是這樣的:
a) . <--current working directory of the application, highest priority, first check
b) \windows
c) \windows\system32
d) \windows\syswow64 <-- lowest priority, last check
和一些應用foo.exe的請求「bar.dll」,這恰好住在SysWow64資料(d)子目錄。這使您有機會將惡意版本置於a),b)或c)中,並且只要應用程序請求bar.dll就會自動將其加載到應用程序中。現在,你的美好,真實地被禁止了。
如前所述,甚至是絕對的完整路徑不能防止這一點,如果你可以替換爲自己的版本的DLL。
,當然還有,這是不是真的限制到Windows任。任何允許外部庫動態鏈接的操作系統理論上都容易受此影響。
7
DLL劫持是一個非常簡單的概念。
應用加載經由DLL的外部代碼(動態鏈接庫)。 DLL Highjacking是惡意代碼通過與應用程序使用的DLL具有相同名稱的惡意DLL注入應用程序的過程。
的應用程序,這取決於它們如何引用他們的DLL是脆弱的DLL劫持。一個例子是使用相對路徑而不是DLL的絕對路徑。另一個是使用環境變量加載DLL,在這種情況下,該目錄默認爲正在執行的應用程序的相對路徑。
相關問題
- 1. 什麼是套接字劫持?
- 2. 多維數組和dll劫持
- 3. 如何找到什麼是在AS3中劫持退格鍵?
- 4. 使用http劫持者的好處是什麼
- 5. 什麼是ClearCase劫持的Git等價物?
- 6. 什麼是dll?
- 7. Waypoints劫持e.clientY
- 8. Greasemonkey劫持setInterval
- 9. 劫持.__ proto__
- 10. 什麼是Microsoft.Web.Services2.dll
- 11. 怎麼辦HTTPS防止會話劫持
- 12. 如何劫持String.class
- 13. PHP會話劫持
- 14. UiTabBar劫持點擊
- 15. 劫持刷新鍵
- 16. TCP連接劫持
- 17. 預防DLL劫持漏洞不會在工作C#
- 18. 爲什麼RavenDB劫持我的Nancy請求?
- 19. 是否有可能劫持標準出
- 20. python3.6-venv劫持點子。什麼是防止這種情況的方法?
- 21. 什麼是第三方DLL?
- 22. 什麼是PREMERGED dll in .net
- 23. 這是什麼oleaut32.dll?
- 24. 什麼是DLL的VERSIONINFO.InternalName?
- 25. 什麼是原生DLL?
- 26. 有什麼方法可以防止沒有httpOnly支持的會話劫持?
- 27. 劫持掛在MacOSX Snow Leopard
- 28. 劫持CKeditor輸入字段
- 29. 會話劫持和PHP
- 30. 劫持React處理函數