AWVS批量導入網站(刷漏洞入門)


今天整了一天這個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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM