【AWVS】python调AWVS接口 新建扫描并导出扫描报告 [自定义扫描报告](三)


前言

前文请见:
python调AWVS接口 新建扫描并导出扫描报告(一)
python调AWVS接口 新建扫描并导出扫描报告[批量扫描](二)

本期新加特性:在原有自动化扫描基础上,实现扫描报告内容的自定义


一、代码

# -*- coding:utf-8 -*-
"""
作者:wyt
日期:2022年04月12日
"""
import json
import time
from datetime import datetime
import requests

from requests.packages.urllib3.exceptions import InsecureRequestWarning

requests.packages.urllib3.disable_warnings(InsecureRequestWarning)

tarurl = "https://localhost:3443"
apikey = "1986ad8c0a5b3df4d7028d5f3c06e936c1fc7e549ff144a089c34a12b23d572fa"
headers = {
    
    "X-Auth": apikey, "Content-type": "application/json;charset=utf8"}


# 查看所有目标结果
def targets():
    api_url = tarurl + '/api/v1/targets'
    r = requests.get(url=api_url, headers=headers, verify=False)
    print(r.json())


# 添加targets目标,获取target_id
def post_targets(url):
    api_url = tarurl + '/api/v1/targets'
    target_id_list = []
    for i in url:
        data = {
    
    
            "address": i,
            "description": "wyt_target",
            "criticality": "10"
        }
        data_json = json.dumps(data)
        r = requests.post(url=api_url, headers=headers, data=data_json, verify=False)
        target_id = r.json().get("target_id")
        target_id_list.append(target_id)
    print('target_id_list:', target_id_list)
    return target_id_list


# 添加scans
def scans(url):
    api_url = tarurl + '/api/v1/scans'
    for i in url:
        data = {
    
    
            "target_id": i,
            "profile_id": "11111111-1111-1111-1111-111111111112",
            "schedule":
                {
    
    "disable": False,
                 "start_date": None,
                 "time_sensitive": False
                 }
        }
        data_json = json.dumps(data)
        r = requests.post(url=api_url, headers=headers, data=data_json, verify=False)
    # target_id = r.json().get("target_id")
    # print(r.json)


# 获取scan_id,通过start_date可知,最新生成的为第一个
def scan_id(number):
    api_url = tarurl + '/api/v1/scans'
    scan_id_list = []
    r = requests.get(url=api_url, headers=headers, verify=False)
    for i in range(0, number):
        scan_id = r.json().get("scans")[i].get("scan_id")
        scan_id_list.append(scan_id)
    print('scan_id_list:', scan_id_list)
    return scan_id_list


# 添加generate,并获取generate_id
def generate(url):
    api_url = tarurl + '/api/v1/reports'
    for i in url:
        data = {
    
    
            "template_id": "11111111-1111-1111-1111-111111111115",
            "source": {
    
    
                "list_type": "scans",
                "id_list": [i]
            }
        }
        data_json = json.dumps(data)
        r = requests.post(url=api_url, headers=headers, data=data_json, verify=False)
    # print(r.json)

# 第三期内容在html()函数中
# 生成扫描报告,每次新生成的都在第一个
def html(number):
    api_url = tarurl + '/api/v1/reports'
    # print(api_url)
    r = requests.get(url=api_url, headers=headers, verify=False)
    print(r.json().get("reports"))
    for i in range(0, number):
        html = r.json().get("reports")[i].get("download")[0]

        url_html = tarurl + html
        print('报告' + str(i) + '地址:', url_html)
        r_html = requests.get(url=url_html, headers=headers, verify=False)

        # 旧logo地址
        old_pict = b'data:image/png;base64,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'
        # 新logo地址
        new_pict = b'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfQAAAH0CAYAAADL1t+KAAAgAElEQVR4XuydCXhU1fn/v+femcm+hwQS2fegiIrIGnBnqYoLaq0CdrOtlUDXv1002P7a/lorBG37a6tVQNFiXavgDiQBRNmXALLKmpXsy2z3/J8zIRiSSebemXtnuXnP8+ShNWd53885me+c7T0MlIgAESACRIAIEIGIJ8Ai3gNygAgQASJABIgAEQAJOg0CIkAEiAARIAImIECCboJOJBeIABEgAkSACJCg0xggAkSACBABImACAiToJuhEcoEIEAEiQASIAAk6jQEiQASIABEgAiYgQIJugk4kF4gAESACRIAIkKDTGCACRIAIEAEiYAICJOgm6ERygQgQASJABIgACTqNASJABIgAESACJiBAgm6CTiQXiAARIAJEgAiQoNMYIAJEgAgQASJgAgIk6CboRHKBCBABIkAEiAAJOo0BIkAEiAARIAImIECCboJOJBeIABEgAkSACJCg0xggAkSACBABImACAiToJuhEcoEIEAEiQASIAAk6jQEiQASIABEgAiYgQIJugk4kF4gAESACRIAIkKDTGCACRIAIEAEiYAICJOgm6ERygQgQASJABIgACTqNASJABIgAESACJiBAgm6CTiQXiAARIAJEgAiQoNMYIAJEgAgQASJgAgIk6CboRHKBCBABIkAEiAAJOo0BIkAEiAARIAImIECCboJOJBeIABEgAkSACJCg0xggAkSACBABImACAiToJuhEcoEIEAEiQASIAAk6jQEiQASIABEgAiYgQIJugk4kF4gAESACRIAIkKDTGCACRIAIEAEiYAICJOgm6ERygQgQASJABIgACTqNASJABIgAESACJiBAgm6CTiQXiAARIAJEgAiQoNMYIAJEgAgQASJgAgIk6CboRHKBCBABIkAEiAAJOo0BIkAEiAARIAImIECCboJOJBeIABEgAkSACJCg0xggAkSACBABImACAiToJuhEcoEIEAEiQASIAAk6jQEiQASIABEgAiYgQIJugk4kF4gAESACRIAIkKDTGCACRIAIEAEiYAICJOgm6ERygQgQASJABIgACTqNASJABIgAESACJiBAgm6CTiQXiAARIAJEgAiQoNMYIAJEgAgQASJgAgIk6CboRHKBCBABIkAEiAAJOo0BIkAEiAARIAImIECCboJOJBeIABEgAkSACJCg0xggAkSACBABImACAiToJuhEcoEIEAEiQASIAAk6jQEiQASIABEgAiYgQIJugk4kF4gAESACRIAIkKDTGCACRIAIEAEiYAICJOgm6ERygQgQASJABIgACTqNASJABIgAESACJiBAgm6CTiQXiAARIAJEgAiQoNMYIAJEgAgQASJgAgIk6CboRHKBCBABIkAEiAAJOo0BIkAEiAARIAImIECCboJOJBeIABEgAkSACJCg0xggAkSACBABImACAiToJuhEcoEIEAEiQASIAAk6jQEiQASIABEgAiYgQIJugk4kF4gAESACRIAIkKDTGCACRIAIEAEiYAICJOgm6ERygQgQASJABIgACTqNASJABIgAESACJiBAgm6CTiQXiAARIAJEgAiQoNMYIAJEgAgQASJgAgIk6CboRHKBCBABIkAEiAAJOo0BIkAEiAARIAImIECCboJOJBeIABEgAkSACJCg0xggAkSACBABImACAiToJuhEcoEIEAEiQASIAAk6jQEiQASIABEgAiYgQIJugk4kF4gAESACRIAIkKDTGCACRIAIEAEiYAICJOgm6ERygQgQASJABIgACTqNASJABIgAESACJiBAgm6CTiQXiAARIAJEgAiQoNMYIAJEgAgQASJgAgIk6CboRHKBCBABIkAEiAAJOo0BIkAEiAARIAImIECCboJOJBeIABEgAkSACJCg0xggAkSACBABImACAiToJuhEcoEIEAEiQASIAAk6jQEiQASIABEgAiYgQIJugk4kF4gAESACRIAIkKDTGCACRIAIEAEiYAICJOgm6ERygQgQASJABIgACTqNASJABIgAESACJiBAgm6CTiQXiAARIAJEgAiQoNMYIAJEgAgQASJgAgIk6CboRHKBCBABIkAEiAAJOo0BIkAEuiTAn5qQ6mLWBQz8OAc/bl1UvJ5wEQEiEJ4ESNDDs1/IKiIQcgKugtyZErCcA+ltxjBgt1vBG9ZFhfkhN5AMIAJE4CICJOg0IIgAEehEwL50ymgL2BowZHvDoyhYTKJOA4cIhBcBEvTw6g+yhgiEBQH3sql/BOc/7dYYhS+SFxUtDQuDyQgiQARAgk6DgAgQgYsI8D/dFKfYWvYCGOADTY1bka61LVq/kxASASIQegIk6KHvA7KACIQVAdfSqXMY46vVGMUYe1Na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YAECEHQLDCK6AAIgAAIgAAIQdMwBEAABEAABELAAAQi6BQYRXQABEAABEAABCDrmAAiAAAiAAAhYgAAE3QKDiC6AAAiAAAiAAAQdcwAEQAAEQAAELEAAgm6BQUQXQAAEQAAEQACCjjkAAiAAAiAAAhYgAEG3wCCiCyAAAiAAAiAAQcccAAEQAAEQAAELEICgW2AQ0QUQAAEQAAEQgKBjDoAACIAACICABQhA0C0wiOgCCIAACIAACEDQMQdAAARAAARAwAIEIOgWGER0AQRAAARAAAQg6JgDIAACIAACIGABAhB0CwwiugACIAACIAACEHTMARAAARAAARCwAAEIugUGEV0AARAAARAAAQg65gAIgAAIgAAIWIAABN0Cg4gugAAIgAAIgAAEHXMABEAABEAABCxAAIJugUFEF0AABEAABEAAgo45AAIgAAIgAAIWIABBt8AgogsgAAIgAAIgAEHHHAABEAABEAABCxCAoFtgENEFEAABEAABEICgYw6AAAiAAAiAgAUIQNAtMIjoAgiAAAiAAAhA0DEHQAAEQAAEQMACBCDoFhhEdAEEQAAEQAAEIOiYAyAAAiAAAiBgAQIQdAsMIroAAiAAAiAAAhB0zAEQAAEQAAEQsAABCLoFBhFdAAEQAAEQAAEIOuYACIAACIAACFiAAATdAoOILoAACIAACIAABB1zAARAAARAAAQsQACCboFBRBdAAARAAARAAIKOOQACIAACIAACFiAAQbfAIKILIAACIAACIABBxxwAARAAARAAAQsQgKBbYBDRBRAAARAAARCAoGMOgAAIgAAIgIAFCEDQLTCI6AIIgAAIgAAIQNAxB0AABEAABEDAAgQg6BYYRHQBBEAABEAABCDomAMgAAIgAAIgYAECEHQLDCK6AAIgAAIgAAIQdMwBEAABEAABELAAAQi6BQYRXQABEAABEAABCDrmAAiAAAiAAAhYgAAE3QKDiC6AAAiAAAiAAAQdcwAEQAAEQAAELEAAgm6BQUQXQAAEQAAEQACCjjkAAiAAAiAAAhYgAEG3wCCiCyAAAiAAAiAAQcccAAEQAAEQAAELEICgW2AQ0QUQAAEQAAEQgKBjDoAACIAACICABQhA0C0wiOgCCIAACIAACEDQMQdAAARAAARAwAIEIOgWGER0AQRAAARAAAQg6JgDIAACIAACIGABAhB0CwwiugACIAACIAACEHTMARAAARAAARCwAAEIugUGEV0AARAAARAAAQg65gAIgAAIgAAIWIAABN0Cg4gugAAIgAAIgAAEHXMABEAABEAABCxAAIJugUFEF0AABEAABEAAgo45AAIgAAIgAAIWIABBt8AgogsgAAIgAAIgAEHHHAABEAABEAABCxCAoFtgENEFEAABEAABEICgYw6AAAiAAAiAgAUIQNAtMIjoAgiAAAiAAAhA0DEHQAAEQAAEQMACBCDoFhhEdAEEQAAEQAAEIOiYAyAAAiAAAiBgAQIQdAsMIroAAiAAAiAAAhB0zAEQAAEQAAEQsAABCLoFBhFdAAEQAAEQAAEIOuYACIAACIAACFiAAATdAoOILoAACIAACIDA/wNJRVanvaznHwAAAABJRU5ErkJggg=='

        time_now = datetime.now().strftime('%Y-%m-%d %H%M%S')
        with open("report-" + time_now + ".html", "wb") as code:
            code.write(
                r_html.content.replace(b'Affected Items Report', b'WeiYuting\'s Report').replace(
                    b'Acunetix Security Audit',
                    b'Hebei Agricultural University WL1803').replace(
                    b'Acunetix', b'WeiYuting').replace(old_pict, new_pict))
        code.close()


def pdf(number):
    api_url = tarurl + '/api/v1/reports'
    # print(api_url)
    r = requests.get(url=api_url, headers=headers, verify=False)
    for i in range(0, number):
        pdf = r.json().get("reports")[i].get("download")[1]

        url_pdf = tarurl + pdf
        print('报告' + str(i) + '地址:', url_pdf)
        r_html = requests.get(url=url_pdf, headers=headers, verify=False)

        time_now = datetime.now().strftime('%Y-%m-%d %H%M%S')
        with open("report-" + time_now + ".pdf", "wb") as code:
            code.write(r_html.content)
            code.close()


def number(url):
    url_list = url.split(',')
    number = 0
    for i in url_list:
        number += 1
    return url_list,number

if __name__ == '__main__':
    # targets()
    urls = input("请输入您要扫描的url,批量扫描以','分隔: ")   # 输入示例:http://1.1.1.1/,http://2.2.2.2/,http://8.8.8.8/
    url_list, number = number(urls)
    print(url_list, number)

    # 添加到targets队列
    target_id_list = post_targets(url_list)
    time.sleep(5)

    # 添加到scans队列
    scans(target_id_list)
    time.sleep(5)

    # 获取scan_id,并生成generate
    scan_id_list = scan_id(number)
    generate(scan_id_list)
    time.sleep(10)

    # 生成扫描报告
    # pdf(number)
    html(number)

修改后生成报告样例:
在这里插入图片描述
在这里插入图片描述
原始报告:
在这里插入图片描述

二、关键技术

2.1 代码

def html(number):
    api_url = tarurl + '/api/v1/reports'
    # print(api_url)
    r = requests.get(url=api_url, headers=headers, verify=False)
    print(r.json().get("reports"))
    for i in range(0, number):
        html = r.json().get("reports")[i].get("download")[0]

        url_html = tarurl + html
        print('报告' + str(i) + '地址:', url_html)
        r_html = requests.get(url=url_html, headers=headers, verify=False)

        # 旧logo地址
        old_pict = b'data:image/png;base64,XXXXXXXXX'
        # 新logo地址
        new_pict = b'data:image/png;base64,YYYYYYYYY'

        time_now = datetime.now().strftime('%Y-%m-%d %H%M%S')
        with open("report-" + time_now + ".html", "wb") as code:
            code.write(
                r_html.content.replace(b'Affected Items Report', b'WeiYuting\'s Report').replace(
                    b'Acunetix Security Audit',
                    b'Hebei Agricultural University WL1803').replace(
                    b'Acunetix', b'WeiYuting').replace(old_pict, new_pict))
        code.close()

if __name__ == '__main__':
    html(1)  # Report 中第一份报告

注意①:直接运行上述代码时,请确保你的 AWVS Report 中存在报告。
在这里插入图片描述
注意②:直接运行上述代码时,请将代码中以下两行中 ‘XXXXXXXXX’ 与 ‘YYYYYYYYY’ 换成'定义'内容。

# 旧logo地址
old_pict = b'data:image/png;base64,XXXXXXXXX'
# 新logo地址
new_pict = b'data:image/png;base64,YYYYYYYYY'

2.2 最重要的方法— replace()

r_html.content.replace(b'Affected Items Report', b'WeiYuting\'s Report')  # 第一个参数:旧,第二个参数:新

ps:其中若替换内容存在 ' 需加转义字符\

2.1.1 描述

Python replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。

2.1.2 语法

str.replace(old, new[, max])

2.1.3 参数

old – 将被替换的子字符串。
new – 新字符串,用于替换old子字符串。
max – 可选字符串, 替换不超过 max 次

2.1.4 特别注意

我们写入的内容应为byte字节类型,以下提供两种方法将字符串转为字节。
(1).加 b’xxxxx’ 将字符串转为字节:

byte = b'Affected Items Report'

(2).encode函数进行转化:

str1 = "Affected Items Report"
bytes_str1 = str1.encode("utf-8")

2.3 实现方法

2.3.1 修改左上角logo

1.查看原始报告的html源码,查得报告中左上角logo的源码如下,且为base64格式。
在这里插入图片描述

在这里插入图片描述
2.我在以下两篇文章中详细介绍了 data:image/png 格式的图片,以及如何制作 data:image/png 格式的图片(python代码与在线网站转化):
【web】data:image/png;python-base64用法与实现(一)
【web】data:image/png;python-base64用法与实现(二)

3.制作好后,直接用replace()方法将原始图片替换成你新定义的就可以了。

2.3.2 修改文字

叠加 replace(old, new) 方法,以此类推:

# 修改一个字符串
str.replace(old1, new1)

# 修改两个字符串
str.replace(old1, new1).replace(old2, new2)

三、 修改图片的另一种方式—svg格式图片

例如,我在阿里巴巴矢量图表站选取一个SVG图片,并复制下它的SVG代码:https://www.iconfont.cn/
在这里插入图片描述

<svg t="1649768851493" class="icon" viewBox="0 0 1034 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1063" width="200" height="200"><path d="M519.641791 854.331861L383.13393 1024l-45.4279-225.453214-191.009115 88.950448 75.933931-190.382488L10.189055 651.055124 164.644935 514.547264 10.189055 378.039403l212.441791-34.199562-75.933931-202.237453 191.009115 73.733095L383.13393 5.094527 519.641791 179.836816 656.149652 5.094527l46.059622 210.240956 190.382487-73.733095-88.950448 202.237453L1029.094527 378.039403l-154.45588 116.221453L1029.094527 651.055124l-225.453214 46.059622 88.950448 190.382488-190.382487-88.950448L656.149652 1024z" fill="#EB6E6E" fill-opacity=".4" p-id="1064"></path><path d="M519.641791 514.547264m-305.671642 0a305.671642 305.671642 0 1 0 611.343284 0 305.671642 305.671642 0 1 0-611.343284 0Z" fill="#EB6E6E" p-id="1065"></path><path d="M519.641791 208.875622c97.203582 0 183.810547 45.371861 239.799403 116.099184A349.673075 349.673075 0 0 1 769.273632 407.562189c0 188.512796-149.397015 341.333333-333.691542 341.333333a326.238249 326.238249 0 0 1-147.919602-35.284696C241.730229 660.128478 213.970149 590.57799 213.970149 514.547264 213.970149 345.72991 350.824438 208.875622 519.641791 208.875622z" fill="#FFFFFF" fill-opacity=".2" p-id="1066"></path></svg>

用以上代码替换以下部分也可,原理相同,故这里就不再提供代码。

<img style="width:155px;height:auto" class="logo" src="data:image/png;base64,xxxxxxxxxxx"/>

在这里插入图片描述

四、总结

首先非常感谢简简师傅的安全项目:https://jwt1399.top/posts/12663.html#toc-heading-9
没有这个项目,我可能完全做不到今天这个样子。这个项目给了我很大的创作灵感。

在写第一篇文章时完全没想过能够出到第三期,这几天收到很多朋友的鼓励,也同样带给我很多灵感,我也备受激励。年轻即出发,我们一定还有无限可能,加油!
2022年4月12日于家中

猜你喜欢

转载自blog.csdn.net/qq_45859826/article/details/124114125