赞
踩
2024/04/09 星期二
最近发现很多人都分不清这几个概念,网上搜出来的说明也非常复杂不是简简单单就能看懂的于是用我理解的最简单的方式解释一下这几个概念
在网安中我们关注一般都是安全漏洞(Vulnerability),于是和漏洞相关的就有这么几个概念:
EXP(Exploit):漏洞利用,一般是完整的漏洞利用代码或程序
POC(Proof of Concept):漏洞概念验证,一般用于证明漏洞存在,不具有攻击性
Shellcode:获取shell的代码,获取shell是大部分攻击的最终目的
Payload:攻击载荷,一系列具有完整框架性的攻击代码
有了以上简明扼要的定义之后,我们就可以关注这几个概念之间的关系了,但是为了理解简单,我们需要先把漏洞分为两种:能拿到shell的漏洞如:命令注入、缓冲区溢出等,和不能拿到shell的漏洞如:信息泄露、拒绝服务等
对于不能拿到shell的漏洞,也就不存在shellcode的概念,exp、poc、payload的行为也非常相似,例如一个信息泄露漏洞,poc可能是证明可以泄露一条信息,payload是编写出来用于获取信息的框架代码,exp是完整的获取泄露的全部有效信息的程序
而对于绝大多数情况安全人员更加关注的是能拿到shell的漏洞,也是这几个术语的常规语境。例如一个栈溢出漏洞,poc是让被攻击程序执行了一段代码证明漏洞存在,shellcode是你基于poc编写的当被攻击程序执行时会启动shell的代码,payload是当shell启动后会继续按照预设的攻击框架进行正向或反向的远程连接到攻击者的服务器并且隐匿进程、隐藏流量或有更强攻击性的代码,而exp是一个按照上述流程编写的完整的攻击程序,任何人运行后都可以直接攻击某个具有该漏洞的主机。
因此这四个概念可以简单理解为如下包含关系:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。