qq_51430002 2024-04-01 14:40 采纳率: 0%
浏览 24

我的awvs不能正常使用

是个正常地址,我就不能创建目标

img


比如https://www.baidu.com就不行
https://www.baidu.com1就可以

  • 写回答

3条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2024-04-01 16:20
    关注

    【相关推荐】



    • 请看👉 :利用AWVS进行反制
    • 您还可以看一下 铭智老师的最全渗透测试工具讲解课程中的 AWVS常用扫描小节, 巩固相关知识点
    • 除此之外, 这篇博客: AWVS批量扫描-妈妈再也不用担心我不会用awvs批量扫描了中的 二、批量扫描 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

      awvs没有批量扫描的功能如果一个一个添加扫描目标还是比较麻烦的,这里可以通过脚本来批量 添加 扫描目标

      需要注意修改几个地方

      1:awvs的访问地址。如果没有改过就是默认的https://localhost:3443

      2:awvs的API接口。
      在这里插入图片描述
      然后点击profile
      在这里插入图片描述
      找到API Key,如果没有则新建一个,如果有就直接copy
      在这里插入图片描述
      然后替换python脚本中的数据

      # -*-coding:utf-8-*-
      
      import json
      import requests
      from queue import Queue
      requests.packages.urllib3.disable_warnings()    # 消除equests提示警告
      
      class Awvs():
          def __init__(self):
              self.host = 'https://localhost:3443'
              self.add_url_api = self.host + '/api/v1/targets'  # 新增任务接口
              self.speed_url_api = self.host + '/api/v1/targets/{}/configuration'  # 设置扫描速度接口
              self.scan_url_api = self.host + '/api/v1/scans'  # 启动扫描任务接口
              self.stats_url_api = self.host + '/api/v1/me/stats'  # 仪表盘接口
              self.del_target_api = self.host + '/api/v1/targets/{}' #删除任务接口
              self.API_KEY = '1986ad8c0a5b3df4d7028d5f3c06e936c5fdedf96d18c44e9a1a8e62d992df485'
              self.header = {'X-Auth': self.API_KEY, 'content-type': 'application/json'}  # header格式
              self.target_url = Queue()  # 创建扫描url队列
              self.target_id = Queue()  # 创建任务id号队列
              self.speed = 'fast'  # 定义扫描速度
      
          def main(self):  # 主程序-选择对应的功能
              print('选择要使用的功能(输入相应的编号):')
              print('1.使用target.txt添加扫描任务  (注:url必须带有http或https)')
              print('2.查看扫描器详情')
              print('3.删除所有任务')
              print('4.退出')
              choice = input('>')
              if choice == '1':
                  self.run1()
                  exit()
              if choice == '2':
                  self.run2()
                  exit()
              if choice == '3':
                  self.run3()
                  exit()
              if choice == '4':
                  exit()
              else:
                  self.main()
      
          def run1(self):  # 创建任务,自动设置为fast模式,并开启扫描。
              self.url_queue()
              self.add_target()
              self.scan_target()
          def url_queue(self):    # 提取target.txt文件里面的url,并添加进self.target_url队列
              fh = open(r'./target.txt', 'r', encoding='utf-8')
              for i in fh.readlines():
                  url = i.strip('\n')        # 去除空行和回车行
                  self.target_url.put(url)
          def add_target(self):    # 添加扫描任务,并将返回包里的target_id添加进self.target_id队列
              while True:
                  if self.target_url.empty():        # 判断x'Bself.target_url队列是否为空,为空就中断循环
                      break
                  target_url = self.target_url.get()            # 取self.target_url队列中的元素
                  add_data = json.dumps({'address' : target_url,
                                          'description' : target_url,
                                         'criticality' : '10'})
                  add_target_res=requests.post(url=self.add_url_api,headers=self.header,data=add_data,verify=False)    #添加任务
                  if add_target_res.status_code==201:        # 判断状态码是否为201
                      target_id=add_target_res.json()['target_id']#以json格式打开add_target_res,
                      self.target_id.put(target_id)       # 将创建好任务的target_id,添加到target_id队列中
                  else:
                      print('任务建立失败,请检查host和API_KEY是否修改正确')
          def scan_target(self):    # 设置扫描速度,并启动扫描任务
              while True:
                  if self.target_id.empty():    # 判断self.target_id队列是否为空,为空就中断循环
                      break
                  scan_target_id = self.target_id.get()    # 取self.target_id队列中的元素
                  set_data = json.dumps({'scan_speed': self.speed})
                  scan_data = json.dumps({"target_id": scan_target_id,
                                           "profile_id": "11111111-1111-1111-1111-111111111111",
                                           "schedule": {'disable': False, 'start_date': None, 'time_sensitive': False}})
                  set_speed_res = requests.patch(url=self.speed_url_api.format(scan_target_id),data=set_data,headers=self.header,verify=False)    #设置扫描速度
                  if set_speed_res.status_code==204:    # 判断状态码是否为204
                      scan_target_res=requests.post(url=self.scan_url_api,data=scan_data,headers=self.header,verify=False)    #启动扫描任务
                      if scan_target_res.status_code==201:    # 判断状态码是否为201
                          print(scan_target_res.json()['target_id']+'任务建立成功')
                      else:
                          print('任务建立失败,请检查host和API_KEY是否修改正确')
      
          def run2(self):  # 查看仪表盘
              stats_res = requests.get(url=self.stats_url_api, headers=self.header, verify=False).json()
              print('任务总数:' + str(stats_res['targets_count']))
              print('正在扫描的任务数量:'+str(stats_res['scans_running_count']))
              print('等待扫描的任务数量:'+str(stats_res['scans_waiting_count']))
              print('任务详情:')
              for i in stats_res['most_vulnerable_targets']:
                  task_details=i['address']+'   High risk:'+str(i['high_vuln_count'])+'   medium risk:'+str(i['med_vuln_count'])
                  print(task_details)
      
          def run3(self):  # 删除所有任务
              self.get_target_id()
              self.del_target()
          def get_target_id(self):        # 获取所有任务的扫描的地址和id
              stats_res=requests.get(url=self.add_url_api,headers=self.header,verify=False).json()['targets']
              for i in stats_res:
                  self.target_id.put([i['address'],i['target_id']])       # 将地址和id已列表的形式添加进target_id队列
          def del_target(self):           # 删除任务
              while True:
                  if self.target_id.empty():
                      break
                  del_target_id=self.target_id.get()      # 取target_id队列的元素
                  del_target_res=requests.delete(url=self.del_target_api.format(del_target_id[1]),headers=self.header,verify=False)
                  if del_target_res.status_code==204:
                      print('成功删除{}' .format(del_target_id[0]))
                  else:
                      print('删除失败')
      
      if __name__ == '__main__':
          aw = Awvs()
          aw.main()
      

      在与脚本同一个目录中新建一个target.txt文件,里面写上要扫描的目标
      在这里插入图片描述
      在这里插入图片描述
      然后执行python脚本,输入“1”,就可以批量添加扫描目标然后自动扫描了。如果目标较多,等待的时间会长一些
      在这里插入图片描述
      打开网页就会看到扫描任务已经在进行了。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 4月1日

悬赏问题

  • ¥15 35114 SVAC视频验签的问题
  • ¥15 impedancepy
  • ¥15 在虚拟机环境下完成以下,要求截图!
  • ¥15 求往届大挑得奖作品(ppt…)
  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见