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年6月27日
    750
  • 影楼网络营销是什么,摄影行业十大网络营销技巧

    婚纱影楼制造行业做网络推广,实际上较为普遍了,可是做的特别好的并不是很多。因此婚纱影楼制造行业互联网推广应该怎么做才也有实际效果呢?   第一,武学质量的提高,实际包含网址的美观大方度,可收看性,每个版块中间互相正确引导和内部链接,相关内容正确引导,及其推广软文编辑这些。武学质量的提高是根基,是网络销售取得成功的第一步。   因为网络销售的独特性,顾客大部分只有根据互联网来体会大家的商品和服务项目…

    2022年7月1日
    560
  • seo搜索引擎优化是指什么,搜索引擎优化的流程

    虽说SEO系统操作很强,在很多操作中,都是具有相应强制请要求,而且操作流程繁琐,SEO做搜索引擎优化排名,并不单单是发两篇文章,还需要掌握更多相关的SEO技巧。 首先,如何掌握搜索引擎优化原则? 搜索引擎优化原则如何掌握?传说的SEO“核心技术”?可能是一种思维误导,其实SEO优化没想象中的那么复杂,可以简单点,SEO脱离不了实际社会的原则问题,搜索引擎也是认为化制造撒,其中肯定是有人性化考虑,网…

    2022年7月4日
    590
  • 市场营销部门有哪些职位(市场营销部组织结构图)

    市场营销各职能部门岗位设置 1.市场部岗位设置 2.销售部岗位设置 3.企划部岗位设置 4.促销部岗位设置 5.客服部岗位设置 6.广告部岗位设置 7.品牌部岗位设置 8.大客户部岗位设置 感谢关注和分享

    2022年10月23日
    520
  • 1000元联想平板电脑(1000元以内的平板推荐)

    联想小新Pad2020是联想在2020年推出的一款亲民平板电脑。 联想小新Pad2020 有着11寸的LCD2k高清全面屏,再配合着四扬声器的杜比全景音效,是网课、追剧、画画的不二之选。虽然搭配的是高通骁龙662的处理器,处理器性能不算多好,但只要不玩大型游戏,对于日常学习,听网课,画画还是够用了。并且还有着7700mah的大电池、20w的快充,对于不到一千元的价格,是非常香的。 联想小新Pad2…

    2022年5月5日
    960
  • 电动车电机十大名牌排行(公认性能最好的电动车电机)

    随着汽车电气化的到来,汽车电机及其自动化控制技术的需求将会越来越大。一切的控制和运动都将依赖于我们容易忽略的电机。那么主流的电机供应商都有哪些呢? 根据CNPP数据研究,十大品牌网china-10.com联合推出的2019电机十大品牌排行榜,我们看到Top10的电机品牌如下。 三菱电机(Mitsubish) 三菱电机全称是三菱电机株式会社(MitsubishiElectricCorp.),创建与1…

    2022年10月22日
    2550
  • 励销进销存怎么增加产品分类,企业励销进销存使用说明

    随着国内企业的不断壮大和发展,现在市场上出现了很多为企业提供销售管理效率的进销存crm软件,种类繁多让用户无从选择,今天小编就给大家说说励销进销存怎么样,为什么这么多的中小企业都选择它。 首先励销进销存是专门针对中小企业痛点而诞生的一款crm系统,不仅功能全面、操作简便、界面友好,而且可以给用户带来很强的体验感,是一款实用性和易用性的库存管理软件,目前在市场上面备受企业用户的青睐。 其次它可以方便…

    2022年7月20日
    620
  • 网络精准营销策略如何制定,精准营销的特点与手段

    企业如何通过网络推广实现精准营销? 企业如何通过网络推广实现精准营销?企业推广的网络精准营销是传统网络推广的另一种新形式,在 企业该如何精准营销|以下三个含义告诉你 ​ 企业如何通过网络推广实现精准营销?企业推广的网络精准营销是传统网络推广的另一种新形式,在网络传播范围广 企业如何通过网络推广实现精准营销?企业推广的网络精准营销是传统网络推广的另一种新形式,在网络传播范围广。可以说,网络精准营销将…

    2022年6月17日
    670
  • 外卖app有哪些,十大外卖平台排名

    对于宅男,宅女和办公室的加班族来说!外卖真的是拯救我们的一大利器,外卖的诞生,让我们有了各种宅下去的理由。不管何时,不管何地,只要你饿了,打开外卖APP就会有送餐小哥把可口的外卖送到你的门前,这种体验真正的感受到了用户就是上帝这句话为什么存在了~同时外卖的诞生,对于上班族来说,每天吃什么也变得多样性起来,想吃什么吃什么,选择性变多了,也更加的适合快节奏的生活。 说起定外卖,也比以前容易的多,以前是…

    2022年6月30日
    800
  • 桌面便签软件哪个好用(桌面便签工具app下载)

    在咱们中国有句老话叫做:好记性不如烂笔头。这句话告诉我们的道理是,一个人的记性再好,也难免会出现纰漏,但是如果将事情写下来的话,那么要比纯人脑记忆更稳妥一些。便签软件就是种可以辅助人们记录东西的工具,便签软件哪个好用?好用的便签app推荐。 在种类繁多的便签软件中,敬业签算是一个比较出众的品牌。之所以出众,是因为它的功能很全面,某些便签软件在开发的时候,只侧重某个方面,而敬业签在多年不断更新迭代的…

    2022年5月7日
    790

发表回复

登录后才能评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

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

关注微信