在学习网络安全的过程中经常会听到几个名词,例如
payload、shellcode、exp、poc
等
碰见不懂的东西就要去搞懂,于是动手查了查资料
Payload是什么?
是包含在你用于一次漏洞利用(exploit)中的ShellCode中的主要功能代码
对于一个漏洞,他可以被利用(exploit),利用有一个完整的解决方案你可以把这个看作是名词的(exploit),然后利用必然有目的,而你的目的就是通过Payload来实现的,比如开3389,创建用户,修改密码等等等。
Payload是可以被模块化的,一个Payload可以稍作修改就用于各种漏洞,同时,对于一个漏洞,他的利用方式必然要涉及到ShellCode,因为Payload是包含在ShellCode中的,ShellCode是真正的被输入到存在漏洞的程序中的,并且ShellCode负责把程序的流程最终转移到你的Payload代码中。所以对于一个漏洞来说,ShellCode就是一个用于某个漏洞的二进制代码框架,有了这个框架你可以在这个ShellCode中包含你需要的Payload来做一些事情。
然后你整理这个过程,把Crash的原因和导致的结果分析写出文章,然后附上你上面写的ShellCode,这就是一个POC(Proof of Concept概念证明)。
定义
payload:翻译过来是有效载荷
通常在传输数据时,为了使数据传输更可靠,要把原始数据分批传输,并且在每一批数据的头和尾都加上一定的辅助信息,比如数据量的大小、校验位等,这样就相当于给已经分批的原始数据加一些外套,这些外套起标示作用,使得原始数据不易丢失,一批数据加上“外套”就形成了传输通道的基本传输单元,叫做数据帧或数据包,而其中的原始数据就是payload