Permalink
Fetching contributors…
Cannot retrieve contributors at this time
49 lines (38 sloc) 2.07 KB

集成 Pocsuite

pocsuite/api/cannon.py 定义了 Cannon 类, 可以通过传递一个包含「待检测目标」,「 PoC 字符串」, 「检测模式」等内容的字典来获得 Cannon 类实例取名为 cannon, 之后通过 cannon.run 可以启动 Pocsuite 来进行检测, 此时会进行单线程检测, 并支持在上层对Cannon进行多线程/多进程调用.

另外将切换到静默模式不输出任何内容, 结束时返回一个记录此次运行结果的字典, 具体代码如下:

from pocsuite.api.cannon import Cannon

info = {"pocname": "PoC的名字",
        "pocstring": "PoC的字符串",
        "mode": "verify( or attack)"
        }

target = "test.site"
invoker = Cannon(target, info) # 生成用来引用 Pocsuite 的实例
result = invoker.run()          # 调用 Pocsuite, result 保存了 Pocsuite 执行的返回结果

返回结果如下:

(
    'test.site', # 测试站点
    'PoC Name', # poc名字
    'SeebugID', # seebug id
    'applications', # poc针对应用
    'version',  # 目标应用版本
    '(ID,message)', # poc执行后返回的成功、失败或异常等信息
    'Date',     # 时间
    {result}    # poc返回的result字典, 格式参照docs/CODING.md#poc-结果返回规范
)

PoC 成功、失败、异常信息

ID 返回信息 ID说明
0 Fail PoC 正常执行,但是检测不存在漏洞
1 Success PoC 正常执行,且检测存在漏洞
2 NotImplementedError PoC 执行时发生 NotImplementedError 异常
3.0 ConnectionError PoC 执行时发生 ConnectionError 异常
3.1 HTTPError PoC 执行时发生 HTTPError 异常
3.2 ConnectTimeout PoC 执行时发生 ConnectTimeout 异常
3.3 TooManyRedirects PoC 执行时发生 TooManyRedirects 异常
4 Other PoC 执行时发生其他异常