API接口

1. 添加扫描任务

请求接口

接口:/api/add方法:POST类型:JSON

请求参数

参数类型必填描述例子
keystringconfig文件中配置的secret_key{"key":"your_secret_key"}
targetstring或list需要扫描的git地址,默认为master分支,如需指定分支或tag可在git地址末尾加上:master单个项目扫描:{"target": "https://github.com/FeeiCN/dict.git:master"};多个项目扫描:{"target": ["https://github.com/FeeiCN/dict.git:master", "https://github.com/FeeiCN/autossh.git:master"]}
rulestring仅扫描指定规则,以,分隔{"rule": "cvi-130003,cvi-130004"}

响应例子

  1. {
  2. "code": 1001, # 状态码为1001则表示逻辑处理正常
  3. "result": {
  4. "msg": "Add scan job successfully.", # 消息
  5. "sid": "a938e2y2vnkf", # 扫描的任务ID(调用任务状态查询时需要用到)
  6. "total_target_num": 1 # 扫描任务的项目总数
  7. }
  8. }

2. 查询扫描任务状态

请求接口

接口:/api/status方法:POST类型:JSON

请求参数

参数类型必填描述例子
keystringconfig文件中配置的secret_key{"key":"your_secret_key"}
sidstring扫描的任务ID

响应例子

  1. {
  2. "code": 1001, # 状态码为1001则表示逻辑处理正常
  3. "result": {
  4. "msg": "success", # 消息
  5. "not_finished": 0, # 未完成的项目数
  6. "report": "http://127.0.0.1/?sid=ae3ea90pkoo5", # 扫描报告页
  7. "sid": "ae3ea90pkoo5", # 扫描的任务ID
  8. "allow_deploy": true, # 是否允许发布上线
  9. "statistic": { # 高中低危漏洞数量
  10. "high": 5,
  11. "medium": 18,
  12. "critical": 0,
  13. "low": 28
  14. },
  15. "status": "done", # 扫描状态
  16. "still_running": {}, # 正在扫描的项目
  17. "total_target_num": 1, # 扫描任务的项目总数
  18. }
  19. }

完整的例子

启动HTTP服务

  1. python cobra.py -H 127.0.0.1 -P 8888

添加扫描任务

  1. # 添加一条任务
  2. curl -H "Content-Type: application/json" -X POST -d '{"key":"your_secret_key", "target":"https://github.com/FeeiCN/grw.git:master", "rule": "cvi-130003,cvi-130004"}' http://127.0.0.1:8888/api/add
  3. # 添加多条任务
  4. curl -H "Content-Type: application/json" -X POST -d '{"key":"your_secret_key", "target":["https://github.com/WhaleShark-Team/cobra.git:master", "https://github.com/FeeiCN/grw.git:master"]}' http://127.0.0.1:8888/api/add

查询任务状态

  1. curl -H "Content-Type: application/json" -X POST -d '{"key":"your_secret_key","sid": "a938e29vdse8"}' http://127.0.0.1:8888/api/status

Web 报告页

  1. http://127.0.0.1:8888/?sid=afbe69p7dxva

Web 指定时间段漏洞统计

  1. http://127.0.0.1:8888/report

下一章:高级功能配置