1、POC和EXP
POC = Proof of Concept中文意思是“观点证明”。这个短语并非仅仅在漏洞报告中使用,甲方在项目招标过程中也常常要求乙方提供POC,即证明你的方案或者产品能达到声称的功能或性能,漏洞报告中的POC则是一段说明或者一个攻击的样例,使得读者能够确认这个漏洞是真实存在的。
EXP = Exploit的中文意思是“漏洞利用”。意思是一段对漏洞如何利用的详细说明或者一个演示的漏洞攻击代码,可以使得读者完全了解漏洞的机理以及利用的方法。
编写POC教程:https://poc.evalbug.com/index.html
关于 PoC/Exp 的几个误区
-
写 PoC 要会 Python.
这句话,毒害了很多人。PoC 的存在,只有一个目的:证明漏洞存在。而关于 PoC 的形式,或者说代码实现方式,你想用什么方式,就用什么方式。我们推荐 Python, 只是说安全界用 Python 的人居多,你写的东西能被更多人看懂,还有 Python 这门语言的灵活,类库强大等特性,给编写的人提供了很大便利。
+
你可以这么理解啊,你要找工作了,你爸妈都推荐你去考公务员,你能说要工作就只能考公务员这种话吗?
-
PoC 就是 Exp.
这话也不知道是谁第一个说的。其实严格来讲,PoC 和 Exp 是两个东西,你要强行说两个是一个,那你当我没说好了。在我看来,PoC 就是用来证明漏洞存在的,而 Exp 是用来利用这个漏洞的,在很多情况下,我们知道了漏洞存在,却不知道具体怎么利用,编写一个 PoC 非常简单,而编写一个 Exp 是相当有挑战性的。
PoC 和 Exp 的区别就有点像你发现了家门口的超市的锁有问题,你给人家证明锁有问题和通过锁有问题这个现象偷到超市的钱 这是两码事。