python-scan(awvs)

awvs web接口如下:

awvs接口:
* /api/auth - 认证 
* /api/listLoginSeq - 认证 
* /api/listProfiles - 查看扫描配置 
* /api/listReports - 查看报表 
* /api/listScans - 查看扫描任务 
* /api/listSettings - 扫描配置 
* /api/listTemplates - 
* /api/addScan - 新建扫描(批量、单任务) 
add_api:
scan,scanList
target,targetList
recurse[-1一次,0 每天,9 每周,10 每月]  
date strftime("%m/%d/%Y", gmtime())
time "%s:%s" % (datetime.now().hour, datetime.now().minute+1)
deleteAfterCompletion "False"
"params":{"profile":"Default",
         "loginSeq":"",
         "settings":"Default",
         "scanningmode":"heuristic",
         "excludedhours":"",
         "savetodatabase":"True",
         "savelogs":"False",
         "generatereport":"False",
         "reportformat":"PDF",
         "reporttemplate":"WVSDeveloperReport.rep ",
         "emailaddress":""}
}

* /api/editScan - 编辑扫描任务 
* /api/getScanHistory - 扫描历史纪录 
* /api/clearScanHistory - 删除扫描记录 
* /api/pauseScan - 暂停扫描 
* /api/resumeScan - 恢复扫描 
* /api/stopScan - 停止扫描 
* /api/deleteAllScans - 删除所有扫描 
* /api/deleteScans - 删除单一扫描任务 
* /api/getScanResults - 查看扫描结果 
* /api/deleteScanResults - 删除扫描结果 
* /api/download/+scanid - 下载扫描结果 

直接调用接口增加扫描任务,代码如下:

'''
# coding:utf-8
# Author : Bing
# Date : 27/3/2017
# Email : [email protected]
# Description :
'''

import httplib,json
from datetime import datetime
from time import gmtime, strftime

class SqlScanTask:
    def __init__(self):
        self.api_url = "127.0.0.1"
        self.api_port = 8183
        self.api_header = {
                            "Content-Type": "application/json; charset=UTF-8",
                            "X-Requested-With": "XMLHttpRequest",
                            "Accept": "application/json, text/javascript, */*; q=0.01",
                            "RequestValidated": "true"
                        }

    def awvs_list_mod(self):
        pass
    
    def awvs_add_mod(self,domain):
        ACUDATA = {"scanType":"scan",
                   "targetList":"",
                   "target":["%s" % domain],
                   "recurse":"-1",
                   "date":strftime("%m/%d/%Y", gmtime()),
                   "dayOfWeek":"1",
                   "dayOfMonth":"1",
                   "time": "%s:%s" % (datetime.now().hour, datetime.now().minute+1),
                   "deleteAfterCompletion":"False",
                   "params":{"profile":"Default",
                             "loginSeq":"",
                             "settings":"Default",
                             "scanningmode":"heuristic",
                             "excludedhours":"",
                             "savetodatabase":"True",
                             "savelogs":"False",
                             "generatereport":"False",
                             "reportformat":"PDF",
                             "reporttemplate":"WVSDeveloperReport.rep ",
                             "emailaddress":""}
                   }

        conn = httplib.HTTPConnection(self.api_url, self.api_port)
        add_data = json.dumps(ACUDATA)
        conn.request("POST", "/api/addScan", add_data , self.api_header)
        resp = conn.getresponse()
        content = resp.read()
        #{"result":"FAIL","errorMessage":"invalid website URL!"}
        #{"result":"OK","data":["6"]}
        status = resp.status
        if status == 200 and "OK" in content :
            return 1
        else:
            return 0

    def awvs_del_mod(self):
        pass




task = SqlScanTask()
result = task.awvs_add_mod("http://www.bau.com")
print result

    

项目地址:https://github.com/Canbing007/awvs_agent

截图:

python-scan(awvs)_第1张图片
111.png
python-scan(awvs)_第2张图片
222.png

你可能感兴趣的:(python-scan(awvs))