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. 什麼是dll?
- 4. Waypoints劫持e.clientY
- 5. 劫持.__ proto__
- 6. 什麼是Microsoft.Web.Services2.dll
- 7. 怎麼辦HTTPS防止會話劫持
- 8. 劫持刷新鍵
- 9. 如何劫持String.class
- 10. UiTabBar劫持點擊
- 11. TCP連接劫持
- 12. 是否有可能劫持標準出
- 13. python3.6-venv劫持點子。什麼是防止這種情況的方法?
- 14. 這是什麼oleaut32.dll?
- 15. 什麼是原生DLL?
- 16. 什麼是PREMERGED dll in .net
- 17. 有什麼方法可以防止沒有httpOnly支持的會話劫持?
- 18. 停止會話劫持
- 19. 會話劫持和PHP
- 20. 會話劫持安全
- 21. 如何避免json劫持
- 22. 點擊劫持漏洞
- 23. 劫持CKeditor輸入字段
- 24. 設計劫持401響應
- 25. 劫持React處理函數
- 26. linux內核中斷劫持
- 27. 會話劫持或攻擊?
- 28. 什麼是un/managed DLL?什麼是非託管代碼?
- 29. 什麼是使用.EXP的,是什麼樣的.lib和.dll
- 30. 什麼是持續集成?