今天整了一天这个AWVS批量扫描脚本,主要是下了好几个版本的AWVS,都不稳定,一次次删除又一次次安装。

做这件事儿目的就是为了批量刷漏洞,不过弄好之后又不打算刷漏洞了,不太喜欢无脑刷漏洞,没什么意义,并且现在水平也不是很高,先踏实学习吧。

这个文章目的就是记录一下整体的思路。

要想较为高效的刷漏洞(这里指的是和菜鸟相比),需要两步,一 : 获取大量的网页链接  ; 二 : 误报率低,比较牛逼一点的漏洞扫描工具

一 :获取大量的网页链接

这个有三种方法:

fofa 这个有前提 ,必须得有 fofa 的VIP会员,直接下载工具  输入 账号 和 key 即可批量导,软件直接在 github 下载就行

软件下载链接  :  https://github.com/tangxiaofeng7/Fofa-collect/releases/tag/V1.0

 ②  利用crawlergo工具,

这个工具 功能就是能爬取  你导入好的txt文件中   每个链接中  源码的  链接

这个工具的原理就是爬虫,开启多个chrom一起爬,(这个chrom不是咱们用的那个谷歌浏览器,只是名字差不多)

这个工具如果和 xray 联动 ,那就比较完美 ,这个工具可以设置代理 ,流量先通过 xray 最后在放出去,实现了被动扫描。具体详情可以看 我写的文章 在分类中的  xray和crawlergo联动

https://github.com/0Kee-Team/crawlergo

这个是crawlergo在github中的下载链接,里面也有 crawlergo 使用说明

③   这种方法就比较普通了,就是使用 layer 子域名挖掘机去一个个挖掘,不太推荐这种方法,layer扫出来的网站质量一般

二 : 选一款牛批的漏洞扫描工具

常见的漏洞扫描工具无非就是 AWVS ,appscan ,OWAsp ,xray 等等 ,因为以前用awvs感觉不错,所以这次也选的 awvs (没想到坑死我。。。)

网上许多的 awvs破解版都不太稳定,要不就是没 api,要不就是使会儿就不行了,现在是2020.7.24 实测下面这款比较不错,有需要的可以下载

https://www.sqlsec.com/2020/04/awvs.html

下载完了之后按照步骤破解安装就行

AWVS这里有个小缺点就是只支持批量导入 csv 文件,这就有点xx,几百上千个网站,我总不能一个个导入,于是就在网上找了半天批量导入的脚本,还好,试了几个之后就找到了个合适的,

直接把文章链接放出来  https://www.imzzj.com/2020/05/18/shi-yong-python-gei-awvs13-pi-liang-tian-jia-ren-wu.html  顺便感谢下博主,给了我很大帮助!!

这里需要提示一点的就是 使用 pycharm打开的时候,import 导入包儿那块儿会报一些错误,也没明白是啥情况,反正我给改对了,直接贴出来前部分的代码

import requests
import json
import  requests.packages
import  urllib3.packages
from urllib3.exceptions import InsecureRequestWarning
# from requests.packages.urllib3.exceptions import InsecureRequestWarning
# requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
urllib3.disable_warnings(InsecureRequestWarning)

apikey = '1986ad8c0a5b3df4d7028dc51b15d120bf015197e'
# 去 AWVS 配置文件里面  有个 API KEY  复制填进去就行
apikey = str(apikey)
headers = {'Content-Type': 'application/json',"X-Auth": apikey}

def addTask(url,target):
    try:
        url = ''.join((url, '/api/v1/targets/add'))
        data = {"targets":[{"address": target,"description":""}],"groups":[]}
        r = requests.post(url, headers=headers, data=json.dumps(data), timeout=30, verify=False)
        result = json.loads(r.content.decode())
        return result['targets'][0]['target_id']
    except Exception as e:
        return e
def scan(url,target,Crawl,user_agent,profile_id,proxy_address,proxy_port):
    scanUrl = ''.join((url, '/api/v1/scans'))
    target_id = addTask(url,target)

    if target_id:
        data = {"target_id": target_id, "profile_id": profile_id, "incremental": False, "schedule": {"disable": False, "start_date": None, "time_sensitive": False}}
        try:
            configuration(url,target_id,proxy_address,proxy_port,Crawl,user_agent)
            response = requests.post(scanUrl, data=json.dumps(data), headers=headers, timeout=30, verify=False)
            result = json.loads(response.content)
            return result['target_id']
        except Exception as e:
            print(e)

def configuration(url,target_id,proxy_address,proxy_port,Crawl,user_agent):
    configuration_url = ''.join((url,'/api/v1/targets/{0}/configuration'.format(target_id)))
    data = {"scan_speed":"fast","login":{"kind":"none"},"ssh_credentials":{"kind":"none"},"sensor": False,"user_agent": user_agent,"case_sensitive":"auto","limit_crawler_scope": True,"excluded_paths":[],"authentication":{"enabled": False},"proxy":{"enabled": Crawl,"protocol":"http","address":proxy_address,"port":proxy_port},"technologies":[],"custom_headers":[],"custom_cookies":[],"debug":False,"client_certificate_password":"","issue_tracker_id":"","excluded_hours_id":""}
    r = requests.patch(url=configuration_url,data=json.dumps(data), headers=headers, timeout=30, verify=False)
def main():
    Crawl = False
    proxy_address = '127.0.0.1'
    proxy_port = '8888'
    awvs_url = 'https://127.0.0.1:3443' #awvs url
    with open('url.txt','r',encoding='utf-8') as f:
        targets = f.readlines()
    profile_id = "11111111-1111-1111-1111-111111111111"
    user_agent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.21 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.21" #扫描默认UA头
    if Crawl:
        profile_id = "11111111-1111-1111-1111-111111111117"
    for target in targets:
        target = target.strip()
        if scan(awvs_url,target,Crawl,user_agent,profile_id,proxy_address,int(proxy_port)):
            print("{0} 添加成功".format(target))

if __name__ == '__main__':
    main()

使用说明就是  先更改配置 ,添加api_key   ; 把需要扫描的站点放在  url.txt  中  ; 运行awvs.py   ; 显示 XXX 导入成功;打开awvs,可以看到站点添加成功,直接就开始自动扫描了

最后哔哔一句,不知道为啥,AWVS误报率有些高,没太仔细看,也没准是我的问题,等真正投入到挖漏洞的时候在研究吧。

最后推荐几篇文章:

https://zhuanlan.zhihu.com/p/108065469

AWVS批量导入网站(刷漏洞入门)的更多相关文章

  1. 各大漏洞平台及SRC的区别和如何批量刷漏洞

    批量刷漏洞: 01刷指纹->02刷原始漏洞->03刷CMS->04刷指定政府.教育->05刷众测平台->06刷SRC->07刷国内外.活动 搜索引擎: 百度.goo ...

  2. 如何实现Magento产品批量导入?

    从事外贸的我们在工作中,经常需要添加成千上万个的产品,如果一个一个的去上传,要花费很多时间,有是很让人头痛,那么应该如何实现产品批量上传?如果使用的是Magento系统的话,那么你现在有福利了,因为M ...

  3. Magento产品批量导入方法?

    从事外贸的我们在工作中,经常需要添加成千上万个的产品,如果一个一个的去上传,要花费很多时间,有是很让人头痛,那么应该如何实现产品批量上传?如果使用的是Magento系统的话,那么你现在有福利了,因为M ...

  4. IIS6批量转移网站

    IIS6.0有个导出配置的功能,但你却找不到界面上的直接导入配置功能,需要用到操作系统自带的iiscnfg.vbs脚本. 1.导出当前的IIS网站配置 打开Internet信息服务(IIS)---&g ...

  5. mysql中把一个表的数据批量导入另一个表中

    mysql中把一个表的数据批量导入另一个表中   不管是在网站开发还是在应用程序开发中,我们经常会碰到需要将MySQL或MS SQLServer某个表的数据批量导入到另一个表的情况,甚至有时还需要指定 ...

  6. JAVA实现Excel批量导入

    一.模板下载: 先将模板放在项目WebRoot下的download文件夹下: /** * @Title: downloadFile * @Description: 模板下载 (网络地址) * @par ...

  7. [原创] SiteServer 3.5 批量导入文章的SQL处理脚本

    2005时做过一个小网站,当时是用ASP+Access做的,功能很简单,但里面的文章不少 现在就像把它转移到SS上来,重点就是如何导入文章 本来SS本身提供了批量导入功能,但对于在WEB上一次性导入一 ...

  8. mysql 如何提高批量导入的速度

    mysql 如何提高批量导入的速度 最近一个项目测试,有几个mysql数据库的表数据记录达到了几十万条,在搭建测试环境 导入 测试数据时,十分慢.在网上搜索了一下,有下面一些方法可以加快mysql数据 ...

  9. 基于.NetCore开发博客项目 StarBlog - (4) markdown博客批量导入

    系列文章 基于.NetCore开发博客项目 StarBlog - (1) 为什么需要自己写一个博客? 基于.NetCore开发博客项目 StarBlog - (2) 环境准备和创建项目 基于.NetC ...

随机推荐

  1. Mac系统应该用什么软件进行清理?

    作为一枚资深的Windows系统使用者,小编刚刚转向Mac系统的怀抱时,各种不适应,Windows系统中普遍使用的360清理软件目前暂时没有Mac版本的,这就让小编很是头疼了,大家的Mac都是用的什么 ...

  2. 工作中用到的redis操作

    del exists 1.字符串 set,get 2.列表 lRange lRem lPush rPush 3.有序列表 zadd zrem zscore 4.hash hset hget hdel

  3. Java中的接口与抽象类的区别

    由于随着jdk版本的更新,在jdk1.8时,接口也增强了,所以我们分别来说明一下. (1)jdk1.8之前 在jdk1.8之前,接口里面只能定义抽象方法和常量:而抽象类比普通类有一点不同,就是抽象类里 ...

  4. 【ACwing 98】分形之城——分形

    (题面来自ACwing) 城市的规划在城市建设中是个大问题. 不幸的是,很多城市在开始建设的时候并没有很好的规划,城市规模扩大之后规划不合理的问题就开始显现. 而这座名为 Fractal 的城市设想了 ...

  5. Windows10下的MediaWiki的部署启动

    MediaWiki是使用PHP开发的,PHP是比较成熟的Web脚本语言,要想运行基于PHP的程序,你需要配置PHP的运行环境.MediaWiki使用数据库来保存数据等信息,支持MySQL和Postgr ...

  6. Mellanox 4036配置

    1.前言 内置factory-default 会重置所有参数到出厂设置. 内置reboot.拔电源就是重启. 外置reset就是重置芯片中数据,不会恢复到出厂设置. 2.感受下恢复出厂过程 4036- ...

  7. kafka监听出现的问题,解决和剖析

    问题如下: kafka为什么监听不到数据 kafka为什么会有重复数据发送 kafka数据重复如何解决 为什么kafka会出现俩个消费端都可以消费问题 kafka监听配置文件 一. 解决问题一(kaf ...

  8. 第8.29节 使用MethodType将Python __setattr__定义的实例方法与实例绑定

    一. 引言 在<第7.14节Python类中的实例方法解析>介绍了使用"实例对象名.方法名 = MethodType(函数, 对象)"将动态定义的方法与实例进行绑定 在 ...

  9. Fiddle常用命令

    常用命令: 1.启动后点击上方工具栏里有个IE图标的Browse按钮(可以选择Chrome或者Firefox),可以打开系统默认的浏览器,同时也可以确认Fiddler能够抓到浏览器的包. 2.左下角黑 ...

  10. C# Email 帮助类 EmailHelper

    1. 配置文件 App.config <?xml version="1.0" encoding="utf-8" ?> <configurati ...