首页 编程教程正文

AWVS 批量添加扫描/删除任务脚本

piaodoo 编程教程 2020-02-22 22:13:19 1786 0 python教程

本文来源吾爱破解论坛

本帖最后由 纸条 于 2018-10-16 11:31 编辑

论坛已经有过一个Python2写的:
https://www.52pojie.cn/thread-610851-1-1.html

用Python3写了一个,只有批量添加和批量删除两个功能,因为其他功能我用不到。

TIM截图20181016112711.png (11.75 KB, 下载次数: 1)

下载附件  保存到相册

2018-10-16 11:27 上传



替换awvs的链接、API这两个地方就可以了:
[Python] 纯文本查看 复制代码
self.scanner = 'https://192.168.137.100/'
self.api = '1986ad8c0a5b3df4d7028d5f3c06e936c877aeb9c8ce346c382e8005aae03e71f'


源码:
[Python] 纯文本查看 复制代码
import json
import queue
import requests
requests.packages.urllib3.disable_warnings()

class AwvsScan(object):
    def __init__(self):
        self.scanner = 'https://192.168.137.100/'
        self.api = '1986ad8c0a5b3df4d7028d5f3c06e936c877aeb9c8ce346c382e8005aae03e71f'
        self.ScanMode = '11111111-1111-1111-1111-111111111115'
        self.headers = {'X-Auth': self.api, 'content-type': 'application/json'}
        self.targets_id = queue.Queue()
        self.scan_id = queue.Queue()
        self.site = queue.Queue()

    def main(self):
        print('='*80)
        print("""1、使用awvs.txt添加扫描任务\n2、删除所有任务""")
        print('='*80)
        choice = input(">")
        if choice == '1':
            self.scans()
        if choice == '2':
            self.del_targets()
        self.main()

    def openfile(self):
        with open('awvs.txt') as cent:
            for web_site in cent:
                web_site = web_site.strip('\n\r')
                self.site.put(web_site)

    def targets(self):
        self.openfile()
        while not self.site.empty():
            website = self.site.get()
            try:
                data = {'address':website,
                        'description':'awvs-auto',
                        'criticality':'10'}
                response = requests.post(self.scanner + '/api/v1/targets', data=json.dumps(data), headers=self.headers, verify=False)
                cent = json.loads(response.content)
                target_id = cent['target_id']
                self.targets_id.put(target_id)
            except Exception as e:
                print('Target is not website! {}'.format(website))

    def scans(self):
        self.targets()
        while not self.targets_id.empty():
            data = {'target_id' : self.targets_id.get(),
                    'profile_id' : self.ScanMode,
                    'schedule' : {'disable': False, 'start_date': None, 'time_sensitive' : False}}

            response = requests.post(self.scanner + '/api/v1/scans', data=json.dumps(data), headers=self.headers, allow_redirects=False, verify=False)
            if response.status_code == 201:
                cent = response.headers['Location'].replace('/api/v1/scans/','')
                print(cent)

    def get_targets_id(self):
        response = requests.get(self.scanner + "/api/v1/targets", headers=self.headers, verify=False)
        content = json.loads(response.content)
        for cent in content['targets']:
            self.targets_id.put([cent['address'],cent['target_id']])

    def del_targets(self):
        while True:
            self.get_targets_id()
            if self.targets_id.qsize() == 0:
                break
            else:
                while not self.targets_id.empty():
                    targets_info = self.targets_id.get()
                    response = requests.delete(self.scanner + "/api/v1/targets/" + targets_info[1], headers=self.headers, verify=False)
                    if response.status_code == 204:
                        print('delete targets {}'.format(targets_info[0]))

if __name__ == '__main__':
    Scan = AwvsScan()
    Scan.main()

版权声明:

本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。

有关影视版权:本站只供百度云网盘资源,版权均属于影片公司所有,请在下载后24小时删除,切勿用于商业用途。本站所有资源信息均从互联网搜索而来,本站不对显示的内容承担责任,如您认为本站页面信息侵犯了您的权益,请附上版权证明邮件告知【754403226@qq.com】,在收到邮件后72小时内删除。本文链接:https://www.piaodoo.com/7847.html

搜索