看过一些电影,貌似关于黑客的部分大都很水,如果你是电影中的黑客,需要你去攻击一个伺服器,你会用哪种语言写下什么代码?


一般不会只使用一种语言的,取决于具体的攻击场景。

比如说需要攻击某个漏洞的时候,一般需要把一段恶意代码送到目标机器里。这段恶意代码行话叫「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(


推荐阅读:
相关文章