看過一些電影,貌似關於黑客的部分大都很水,如果你是電影中的黑客,需要你去攻擊一個伺服器,你會用哪種語言寫下什麼代碼?


一般不會只使用一種語言的,取決於具體的攻擊場景。

比如說需要攻擊某個漏洞的時候,一般需要把一段惡意代碼送到目標機器里。這段惡意代碼行話叫「payload」,一般只能根據漏洞成因選擇特定的編程語言:

  • XSS / CSRF 漏洞一般只能用 JavaScript。
  • SQL注入一般只能構造畸形SQL語句,命令執行類的會摻一點bash、DOS命令。
  • 反序列化漏洞一般用JSON、XML等,取決於具體的數據交換語言。
  • 溢出漏洞一般用彙編、C編寫shellcode,而且一般需要用到專門的 Jump-Oriented Compiler。
  • 拿Web Shell的時候,需要根據當前Web伺服器配置選擇相應的ASP、PHP、ASPX等語言。

另外,將payload送入目標機器一般需要構造特殊的提交方式:

  • 如果需要構造畸形HTTP請求的話,我一般選擇Python,requests庫真的很好用。
  • 如果需要在套接字層直接提交TCP/UDP數據的話,我一般選擇C,也會考慮Python。

剩下的情形對語言一般就沒有強制要求了,我平時大概隨心情在 Go 和 Python 之間選一個。


rm -rf /*


Go go go!


肯定是perl,讓人看不懂


黑客帝國開頭Neo用的那段exploit是真實存在的,是針對OpenSSH的一個任意命令執行漏洞編寫的。發布者稱他們用這個日過NSA。

經 @王凱倫 指正,是cia(


推薦閱讀:
相关文章