黑客写的是什么代码?
一般不会只使用一种语言的,取决于具体的攻击场景。 比如说需要攻击某个漏洞的时候,一般需要把一段恶意代码送到目标机器里。这段恶意代码行话叫“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 之间选一个。一般程序员与黑客(Hacker) 的距离有多远?
黑客一定是懂编程的(C/PYTHON/PHP/JAVA 代码审查、POC、逆向....)
但程序员不一定是黑客
一个不懂计算机原理、计算机科学基础的码农
照样可以基于第三方的框架/库写出应用,解决一些问题。
但
对于真正的黑客来说,如果不懂底层的原理、概念
那也只能称为脚本小子
永远在圈内排不上号
程序员和黑客有着共同之处,也存在着不同之处,两者并不属于同一个领域 。程序员是根据项目需求完成所需要的功能,而黑客则是不择手段去攻击一个目标,这个目标可能是一个网站,也可能是一个app、也可能是一个主机。所以二者并不能一概而论。下面我分别介绍黑客、程序员、及他们的异同点,希望能更好的帮助你理解二者。
黑客
黑客包括逆向工程师、渗透测试工程师、脚本小子、代码审计工程师。
1)逆向工程师,通过反向思维去还原系统、app、物体等的开发过程或者制造过程。这类人对操作系统底层比较擅长,如Windows、macOS、Linux、安卓等。当然多数逆向工程师都是对一个方向比较精通,对其他领域属于略知一二。(比如擅长Windows逆向,对Linux、安卓逆向、渗透测试、代码审计属于了解)。
2)渗透测试工程师,是指通过对指定目标进行信息收集、威胁建模、漏洞分析、渗透测试攻击阶段、后渗透攻击阶段。这类人主要是通过分析应用、主机、数据库等方式去发掘漏洞,并通过该漏洞取得系统权限,主要对各种开发语言的特性、数据库、操作系统、网络端口、网络协议等比较了解。主要是写一些POC、exp进行漏洞验证。
3)代码审计工程师,属于白盒测试,主要是通过分析应用系统的源代码在系统上线之前发现系统中存在的安全隐患。这类人主要是即对各种应用系统中存在的原理比较了解同时也对某一种或多种语言的开发过程也比较了解。
4)脚本小子,属于通过网上现成的工具去攻击的一类人。擅长工具使用,对原理和代码都不懂。
程序员
程序员包括前端、后端、全栈工程师等不同领域。
前端主要负责展现炫酷的视觉效果,主要是负责前端展示的部分 。
后端主要负责功能的实现。
全栈工程师前端后端全部都会
黑客与程序员共同之处
1、程序员和黑客都要懂得代码,会写代码(脚本小子除外)。
2、程序员和黑客(安全从业人员都属于IT这个大范围)。
3、顶级程序员也会懂得安全(黑客方面的技术),做到顶级肯定要考虑安全因素,其实目前大部分的系统都要考虑安全因素。
黑客与程序员不同之处
1、黑客擅长除了代码还包括操作系统、网络、端口、硬件等属于不同领域的跨度;程序员更侧重于某类开发语言的深度学习。个人认为黑客知识更加的广,但是程序员的某一类的精(单指语言)。
2、黑客擅长的是破坏,程序员擅长的是建造(我指的建造并不是说建造的是安全的建筑) 。
3、黑客是对信息的收集分析与利用。
4、黑客其实也算是给程序员找麻烦的,找到漏洞你得修。
希望你能够帮助到你!
差不远了,一般程序员只要肯花时间,很快就能漏洞的挖掘技巧。因为一般黑客技术主要分三大块:
1、漏洞挖掘,即找到程序中可利用的漏洞。对于这块,程序员本身就懂代码,所以只要恶补一些漏洞方面的原理,还是很容易入门的。
2、漏洞利用,即利用发现的漏洞突破目标网络。这块除了代码,还需要具备一些网络、操作系统方面的知识,没有捷径,只能慢慢学习积累。
3、网络拓展,在获得突破后,继续在目标网络里挖掘想要的信息,并尽可能地不被发现。这才是最具挑战的技术活.....
要了解更多了网络安全知识,请点赞并加关注,谢谢!

