word转换pdf格式软件免费版(电脑pdf转word软件推荐)

企业Web网站很多直接对Internet提供服务,往往会被黑客作为恶意攻击的突破口,Web的安全和企业的信息安全高度相连。 现实的管理中,在安全制度不完善的情况下,网站开发人员和维护人员经常因为业务紧急上线或者Bug修复,私自上线新的内容或变更,安全人员往往在出现问题后追查时才发现,之前的安全环境或者代码已经都变更了。 今天介绍如何利用GitHut上的SimpleAutoBurp项目,利用Pyth…

SimpleAutoBurp实现企业网站自动安全检测

企业Web网站很多直接对Internet提供服务,往往会被黑客作为恶意攻击的突破口,Web的安全和企业的信息安全高度相连。

现实的管理中,在安全制度不完善的情况下,网站开发人员和维护人员经常因为业务紧急上线或者Bug修复,私自上线新的内容或变更,安全人员往往在出现问题后追查时才发现,之前的安全环境或者代码已经都变更了。

SimpleAutoBurp实现企业网站自动安全检测

今天介绍如何利用GitHut上的SimpleAutoBurp项目,利用Python脚本实现网站的定时的自动扫描,这样能够在更短的时间发现Web系统的漏洞。GitHub上的脚本针对Linux平台,本文将脚本修改为在Windows平台上运行。

一、工作原理:

利用Crontab(linux平台)或任务计划程序(windows平台)定期执行SimpleAutoBurp.py,该脚本利用BurpsuitePro的RESTAPI和配置文件config.json对目标主机进行web扫描。

二、脚本文件 SimpleAutoBurp+Config.json

SimpleAutoBurp.py 是调用Burp suite API的脚本,config.json是其配置文件。

SimpleAutoBurp.py

from os import strerror
from subprocess import Popen
import requests
import time
import subprocess
import logging
import os
import signal
import json
import sys
from datetime import datetime

#将configFile指向你的config.json文件
configFile = r\"F:/pythonCode/SimpleAutoBurp/SimpleAutoBurp-main/config.json\"

try:
    with open(configFile) as json_data:
        config=json.load(json_data)
except:
    print(\"Missing config.json file. Make sure the configuration file is in the same folder\")
    sys.exit()

burpConfigs=config[\"burpConfigs\"][0]
siteConfigs=config[\"sites\"]

def set_logging():
    global rootLogger
    logFormatter = logging.Formatter(\"%(asctime)s [%(levelname)-5.5s]  %(message)s\")
    rootLogger = logging.getLogger()
    NumericLevel = getattr(logging, burpConfigs[\"loglevel\"].upper(), 10)
    rootLogger.setLevel(NumericLevel)

    fileHandler = logging.FileHandler(\"{0}/{1}.log\".format(burpConfigs[\"logPath\"], burpConfigs[\"logfileName\"]))
    fileHandler.setFormatter(logFormatter)
    rootLogger.addHandler(fileHandler) 

    consoleHandler = logging.StreamHandler()
    consoleHandler.setFormatter(logFormatter)
    rootLogger.addHandler(consoleHandler)

def execute_burp(site):
    cmd = burpConfigs[\"java\"] + \" -jar -Xmx\" + burpConfigs[\"memory\"] + \" -Djava.awt.headless=\" 
        + str(burpConfigs[\"headless\"]) + \" \" + burpConfigs[\"burpJar\"] + \" --project-file=\" + site[\"project\"] + \" --unpause-spider-and-scanner\"
    try:
        rootLogger.debug(\"Executing Burp: \" + str(cmd))
        p = Popen(cmd, shell=True, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
        return p.pid
    except:
        rootLogger.error(\"Burp Suite failed to execute.\")
        exit()

def check_burp(site):
    count = 0 
    url = \"http://127.0.0.1:1337/\"+ site[\"apikey\"] +\"/v0.1/\"
    time.sleep(10)
    while True:
        if count > burpConfigs[\"retry\"]:
            rootLogger.error(\"Too many attempts to connect to Burp\")
            exit()
        else:
            rootLogger.debug(\"Cheking API: \" + str(url))
            init = requests.get(url)
            if init.status_code == 200:
                rootLogger.debug(\"API running, response code: \" + str(init.status_code))
                # Let Brup time to load extensions
                time.sleep(30)
                break
            else:
                rootLogger.debug(\"Burp is not ready yet, response code: \" + str(init.status_code))
                time.sleep(10)

def execute_scan(site):
    data = \'{\"urls\":[\"\'+ site[\"scanURL\"] + \'\"]}\'
    url=\"http://127.0.0.1:1337/\" + site[\"apikey\"] + \"/v0.1/scan\"
    rootLogger.info(\"Starting scan to: \" + str(site[\"scanURL\"]))
    scan = requests.post(url, data=data)
    rootLogger.debug(\"Task ID: \" + scan.headers[\"Location\"])
    while True:
        url=\"http://127.0.0.1:1337/\" + site[\"apikey\"] + \"/v0.1/scan/\" + scan.headers[\"Location\"]
        scanresults = requests.get(url)
        data = scanresults.json()
        rootLogger.info(\"Current status: \" + data[\"scan_status\"])
        if data[\"scan_status\"] == \"failed\":
            rootLogger.error(\"Scan failed\")
            kill_burp()
            exit()
        elif data[\"scan_status\"] == \"succeeded\":
            rootLogger.info(\"Scan competed\")
            return data
        else:
            rootLogger.debug(\"Waiting 60 before cheking the status again\")
            time.sleep(60)

def kill_burp(child_pid):
    rootLogger.info(\"Killing Burp.\")
    try:
            os.kill(child_pid, signal.SIGTERM)
            rootLogger.debug(\"Burp killed\")
    except:
            rootLogger.error(\"Failed to stop Burp\")

def get_data(data, site):
    for issue in data[\"issue_events\"]:
        rootLogger.info(\"Vulnerability - Name: \" + issue[\"issue\"][\"name\"] + \" Path: \" + issue[\"issue\"][\"path\"] + \" Severity: \" + issue[\"issue\"][\"severity\"])
    token=site[\"scanURL\"].split(\'/\')[2]
    top_level=token.split(\'.\')[-2]+\'.\'+token.split(\'.\')[-1]
    file = top_level + \"-\" + datetime.now().strftime(\"%Y_%m_%d-%I_%M_%S_%p\") + \".txt\"
    file = burpConfigs[\"ScanOutput\"] + file
    rootLogger.info(\"Writing full results to: \"+ file)
    with open(file, \"w\") as f:
        f.write(str(data[\"issue_events\"]))

def main():
    set_logging()
    for site in config[\"sites\"]:
        # Execute BurpSuite Pro
        child_pid = execute_burp(site)
        # Check if API burp is up
        check_burp(site)
        # Execute Scan
        data = execute_scan(site)
        # Get Vulnerability data
        get_data(data, site)
        # Stop Burp
        rootLogger.info(\"Scan finished, killing Burp.\")
        kill_burp(child_pid)

if __name__ == \'__main__\':
    main() 

Config.json(这里面配置要扫描的站点, APIKEY在BurpSuite里面生成)

{
    \"sites\" : [{
    \"scanURL\" : \"http://192.168.168.180/\",
    \"project\" : \"d:/temp/Metasploitable2.burp\",
    \"apikey\" : \"S44ZGKWIXsGa8eWiASfDz7u5d2CzsbHm\"
    }],
    \"burpConfigs\" : [{
    \"memory\" : \"2048m\",
    \"headless\" : \"true\",
    \"java\" : \"C:/Program Files/Java/jdk-11.0.11/bin/java.exe\",
    \"burpJar\" : \"F:/Download/burpsuite_pro_v2021.6.1.jar\",
    \"retry\" : 5,
    \"logPath\" : \"d:/temp/ScanOutput/\",
    \"logfileName\" : \"SimpleAutoBurp\",
    \"loglevel\" : \"debug\",
    \"ScanOutput\" : \"d:/temp/ScanOutput/\"
    }]
}

三、Burp suite pro REST API服务开启方法SimpleAutoBurp实现企业网站自动安全检测

Burp Suite Pro 开启REST API 界面

四、使用任务计划程序(taskschd.msc)自动执行脚本,这里不再啰嗦如何利用Windows任务计划程序执行脚本,可以参考Windows相关帮助文件。

SimpleAutoBurp实现企业网站自动安全检测

使用SimpleAutoBurp脚本来及时发现网站的安全漏洞是一种补救措施,我们更应该建立和遵循安全的软件发布流程,标准的软件发布流程我们可以参考ITIL中的发布,部署流程,也可以参考Microsoft的SDL流程。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2022年5月13日 下午4:19
下一篇 2022年5月13日 下午4:19

相关推荐

  • 扫地机器人市场:米家、科沃斯激烈肉搏

    主打高端产品的科沃斯、主推性价比的小米,谁将在这场博弈中胜出,还是个未知数。

    2022年10月5日
    390
  • 如何赚钱最快,身无分文最快赚钱方法

    在我们的日常生活中,经常会遇到急需要钱的时候,当身边的亲朋好友都不想出手相助的时候,只能在网上寻求快速赚钱的方法。其实快速赚钱的方法有很多,如果你合理利用起来的话,可以解决你的燃眉之急。 有什么办法赚钱最快?我整理了以下这些快速赚钱的方法,大家可以一试。 1.闲置物品出售 如今网上各种的二手物品交易平台也有很多,你可以把生活中不常用的一些有价值的物品卖掉换钱,例如平板电脑、闲置手机、工艺饰品、手办…

    2022年8月2日
    670
  • 如何做团购推广,教你三个盈利的小技巧

    相信现在的大多数年轻人的手机当中必备的软件就有一些团购软件,像是美团、大众点评、百度糯米等等。不论是吃的,还是一些娱乐节目,在这些团购网当中都可以轻松找到,并且选择的种类很多,还有最重要的是价格便宜。但是团购网推广不是一件容易的事情。下面我们就一起看一下团购推广的要点。 1.DM单、彩页发放 散发地点:商务写字楼、办公楼 目标人群分析:年龄20-28岁的年轻白领。 优点:因为是面向具体城市的消费人…

    2022年6月30日
    4350
  • 米家空气净化器怎么样(深度评测其性能及净化效率)

    随着空气质量的好转,空气净化器行业前进的脚步也放缓了一些,不少人家里的空气净化器也开始处于吃灰的状态,小米也时隔近两年才对米家空气净化器2S进行迭代升级,而这次新推出的米家空气净化器3又有哪些亮点呢? 体积没变,但性能更强了 米家空气净化器3最让我感到意外的是,在保持和上代产品同样体积的基础上,净化能力进一步增强,颗粒物CADR从310m3/h提升到400m3/h。一般来说,提升性能都要以增加体积…

    2022年9月16日
    820
  • 会议营销应该注意什么,会议营销流程及细节

    所谓会销,顾明思义指的是通过会议来进行促销,从而达到转化的目的;本文将以线下的会销案例为主,来分享会销的策划思路和核心流程,希望能给大家带来干货! 一、主题的确定 做会销,首先要定位会销的目的。 会销目的需要策划团队进行讨论和最终确定,并符合当前公司客户需求,最终达成共同的目标。 这里分享几个目的类型,供大家参考: 品牌宣传;业绩转化;增强客户对公司信心;提升行业影响力和知名度;提高公司公信力………

    2022年6月23日
    970
  • 乳罩品牌都有啥牌子(平价又好穿的乳罩品牌)

    内衣品牌在国内也就三十多年发展时间,跟着本博主花几分钟时间你就能有个基本定位了解。博主现从事内衣买手工作,因工作需要,加上本人是内衣狂魔,业余时间逛街也是首奔内衣专柜,基本上国内的内衣品牌叫得出名字的或者叫不出已消失的内衣品牌都体验过。 牌子数量太多,我会尽量挑选对得起"品牌"这两个字的,并用几句话打趣说说,排名不分先后。 【古今】1996年上海。 中国内衣老字号,妈妈那一代女人心中的一戴添娇产品…

    2022年10月22日
    390
  • 最好用的网盘排名(目前最好用的个人同步云盘)

    2022年网创智慧库最新整理的12个网盘资源搜索网站。 大家记得收藏保存,免费使用,找资源更轻松。 以下网盘资源搜索网站随机分享,排名不分先后。 一、网盘搜索 网盘搜索是一个综合类网盘资源搜索神器,聚合了乌鸦搜索、酷盘搜索、小白网盘、58网盘、搜盘吧、快搜网、云搜索、小马盘等多个网盘搜索功能,一站式搞定多个网盘搜索。 网盘资源搜索引擎 二、超能搜 超能搜同样是一个综合类网盘资源搜索网站,网站内置了…

    2022年5月11日
    2550
  • 绝地求生基本操作常识,新手必须要知道的一些基本常识

    大家好我是ChanceTheGamer。谢谢来看我的文章,希望大家在看完这个文章之后会对这个游戏有所理解,因为非常的详细所有文章有点长,希望大家可以认真的看完。 我是从三月初开始关注到这个游戏的,在游戏公测的第一天就购买了这个游戏。因为身在新西兰,可以比较没有延迟的直接玩这个游戏。但是当时一开始的时候这个游戏还没有澳服,所以我一开始只能去北美服玩。 和三个留学生朋友一起玩了差不多一个月后才吃到了第…

    2022年9月29日
    670
  • 2020新手怎么开好淘宝网店(从免费开店到铺货卖货的攻略大全)

    直接从如何开一家淘宝店以及如何开好一家淘宝店两个方向进行分享,尽可能全面一点。大家觉得也很重要却没有谈到的地方,评论告诉我,会一直去补充,毕竟我一个人能想到的一定是主观、片面的。话不多少,切入正题: 说在前面,不管是什么样水平的卖家,淘宝规则都是要时常去看一看的,尤其是新手卖家,建议花个几天时间,完完整整看一遍,大家要相信,在马爸爸的带领下,走正路才能赚到该赚的钱。淘宝规则官网网址:http://…

    2022年7月19日
    540
  • 任正非创业经历及创业精神,任正非的奋斗历程简介

    11月11日,华为发布纪录片《华为的真实故事》,讲述华为的创业史。 任正非表示,44岁开创华为时没有半点经验,集资了21000元作为资本,没有国家的支援。 当时华为通过代理销售交换机赚了第一桶金,但是在卖得很好的时候,突然遭到了供应商的断货。被逼无奈之下,华为被迫开始自己制造产品。任正非说,那时候无路可走,根本不会想不成功会怎么样。在没日没夜的加班过程中,任正非彼时拿着大茶缸对自己的员工说,华为的…

    2022年7月12日
    1050

发表回复

登录后才能评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信