什么是 PoC
PoC(全称: Proof of Concept), 中文译作概念验证。在安全界,你可以理解成为漏洞验证程序,和一些应用程序相比,PoC 是一段不完整的程序,仅仅是为了证明提出者的观点的一段代码
什么是 Exp
Exp(全称: Exploit),中文叫漏洞利用程序。名字上说的已经很清楚了,简单讲,就是一段可以发挥漏洞价值的程序,这话感觉和没说一样。想象一下这样的场景,目标存在一个 SQL 注入漏洞,然后被你知道了,然后你编写了一个程序,通过这个 SQL 注入漏洞,拿到了目标的权限,那么这个程序就是所谓的 Exp 了.
POC与EXP的区别
PoC 和 Exp 是两个东西,PoC 就是用来证明漏洞存在的,而 Exp 是用来利用这个漏洞的,在很多情况下,我们知道了漏洞存在,却不知道具体怎么利用,编写一个 PoC 非常简单,而编写一个 Exp 是相当有挑战性的。
PoC 编写流程
根据漏洞详情,寻找受影响版本程序
如果是一些 CMS, 可以去 对应的官网下载历史版本程序,有些漏洞作者不会提具体版本号,那你就要根据漏洞作者提交的时间来判断了。当然除了官方网站之外,还可以去 github 上寻找源码,这些个官网都喜欢把历史版本的程序删除掉,善用 github 上的 tag, branch, release 功能,上面有你要的所有版本
搭建对应漏洞靶场
这里其实没什么好说的,下载了人家的源码之后,在你的虚拟机里面配置好环境就行了,还能顺便学一下运维的一些皮毛知识。
手动复现漏洞
根据漏洞详情,手动