0x01 PoC
PoC(全称: Proof of Concept), 又叫概念验证。作为我们的漏洞验证程序,他可能是一段不完整的程序,仅仅是为了证明我们提出漏洞的观点。
推荐使用Python编写PoC,因为安全界用 Python 的人居多,写的东西能被更多人看懂,并且 Python 这门语言的灵活,类库强大等特性,给编写的人提供了很大便利。
Exp(全称: Exploit),又叫漏洞利用程序。比如目标存在一个 SQL 注入漏洞,我们分析到了该漏洞,然后我们编写一个程序,通过这个sql注入漏洞,最终拿到目标的权限,那么这个程序就是Exp。
编写一个 PoC 相对简单,而编写一个 Exp 是相当有挑战性的。
0x02 PoC与PoC框架
PoC 框架就是一个批量管理,调度 PoC 的程序。因为是框架,要批量调度,那就要求 PoC 在编写的时候要遵守一些规范,这些规范常见的有:
入口规范
考虑到批量使用 PoC 的调度情况,统一入口框架调用该 PoC 的时候会非常之方便。这个就需要根据具体的框架的调度要求来看了,都有文档的,看一下就会了。
API规范
API 是该框架对一些基础类库的封装,比如说框架提供了一些网络请求工具。这些封装有什么好处呢?我还是举例子来说明,比如某次扫描,调用了 1000 个 PoC 去扫描目标主机了,假设这个扫描任务中有一部分是需要登录的,而有一些的作者在编写的时候忘记在 PoC 中接收用户自定义的 Cookie 了,那么此时就会因为接收不到 Cookie 而导致请求不成功。那么在使用了框架的情况下,即使在忘记了添加这些字段的情况下