是否有某種方法可以阻止JavaScript中的某些'函數'在客戶端上運行?我擔心像Mimikatz這樣的內容可能會從內存中運行,並使黑客能夠侵入主機。理想情況下,這會檢測不允許運行並阻止執行的可定義代碼。阻止在客戶端上運行JavaScript'函數'
回答
您所描述的內容存在一些問題。首先,它很容易混淆JavaScript。例如,假設您不希望執行eval函數。設計一個正則表達式可以很容易地去除直接調用eval的正則表達式。除非它不是以eval的名字命名呢?
var e = eval;
e('evil');`
你也可以檢測到,但你最終會在試圖預測混淆技術的兔子洞中出現。如果你真的想這樣做,我建議從一個像Greasemonkey或Tampermonkey這樣的瀏覽器插件開始。這將是很多工作,你會得到很多誤報。
另一個問題是決定阻止什麼。根據實現情況,JavaScript中只有十幾個global functions,另外還有幾十個全局對象。哪些會被阻止?除非JavaScript引擎或瀏覽器存在漏洞,否則它們都不具有內在危險性。如果您意識到漏洞,修補將比過濾JavaScript更安全和簡單。
JavaScript在攻擊中使用的最常見方式是通過跨站點腳本(XSS)。兩種主要方法是使用惡意腳本從域中竊取數據,或者重新格式化頁面以提示用戶輸入敏感數據(通常是憑證或支付卡號碼)。這兩種技術都使用與合法網頁相同的JavaScript功能,因此通過分析JavaScript實際上是不可能的。可以通過在請求參數中查找JavaScript來阻止簡單的XSS攻擊,但瀏覽器已經這樣做了。
您的Mimikatz示例不是特定於JavaScript的。 Mimikatz是後期開發的通用工具。換句話說,攻擊者必須首先找到進入你的系統的方法,然後使用Mimikatz使其更容易留在惡作劇中。同樣,如果沒有JavaScript引擎或瀏覽器中的初始漏洞,攻擊者將無法使用JS運行類似Mimikatz的內容。
如果您仍然擔心,請查看NoScript之類的插件。它支持定義哪些域可以運行JavaScript的策略。它不像你想要的那麼精細,但它很容易設置。
ahhh ...很好的答案,我很感謝您分享您的專業知識。因此,如果受限制的正常特權用戶執行'Mimikatz。例如,它只會潛在地提供與用戶特權級別相稱的結果。由於缺乏特權,推測加載驅動程序和注入代碼也可能無法實例化。 – shoguneye
只是爲了你的薰陶,如果這就是你所指的,那麼就有一個Mimikatz的JavaScript版本。乾杯 – shoguneye
啊,不知道關於JS Mimikats。 在Web瀏覽器中加載的JavaScript有兩個主要限制。首先,它不能與底層操作系統進行交互,只能使用瀏覽器提供的數據。這會阻止任何像驅動程序加載這樣的低級操作。 第二個限制是相同的原始策略,它只允許腳本從發起腳本的網站請求數據。由於如何定義「數據」以及網站允許的一些有意的例外,這會變得有點複雜。 – SArcher
- 1. 如何從客戶端JavaScript運行服務器端函數?
- 2. JavaScript函數onload阻止其他正在運行的函數
- 3. 客戶端的JavaScript函數
- 4. 在客戶端ASP .Net上運行非託管C++函數C#
- 5. Silverlight是否在客戶端上運行
- 6. Java TCP客戶端發送被阻止?
- 7. Aerospike Java異步客戶端阻止
- 8. 停止運行javascript函數
- 9. Socket.io Android客戶端無法運行,但iOS客戶端正在運行
- 10. 異步客戶端套接字ManualResetEvent阻止執行
- 11. 運行RabbitMQ java客戶端
- 12. 運行PHP客戶端
- 13. 從客戶端運行EXE
- 14. Netty的阻斷客戶端
- 15. Java非阻塞客戶端
- 16. Elasticsearch運行時異常curl_multi_exec()函數需要客戶端
- 17. JavaScript函數阻止C#函數被執行?
- 18. 有沒有阻止JavaScript在系統上運行的設置?
- 19. 使用Socket.IO,在發送JavaScript事件時阻止客戶端劫持 - 使用SignalR?
- 20. 客戶端 - 調用函數
- 21. asp.net客戶端端VBScript獲取JavaScript運行時錯誤?
- 22. 如何在客戶端運行PhantomJS?
- 23. 阻止用戶在Windows上運行應用程序CE
- 24. JavaScript - 如何阻止腳本運行onClick()?
- 25. 如何阻止JavaScript運行的線程?
- 26. 阻止用戶按角色查看流星客戶端腳本
- 27. ASP.NET AXD資源在客戶端被阻止?
- 28. 在AS3客戶端是否阻止Flash AMF調用?
- 29. asp.net postback在客戶端驗證後阻止
- 30. 依賴注入正在阻止客戶端驗證MVC3
根本無法控制HTTP客戶端。 (我的意思是指你的服務器。) – Pointy
許多瀏覽器都有一個選項來完全禁用JavaScript。那是你在找什麼? –
嗨,彼得...我不想禁用JavaScript,因爲這會影響用戶的網絡體驗,白名單會有一些好處,但絕不是故障安全,所以我想要做的是有一個插件也許分析JavaScript確定是否存在(如策略中所定義的)應允許運行的命令。基於策略觸發器和操作,例如不允許代碼運行。 – shoguneye