77百科网
当前位置: 首页 生活百科

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

时间:2023-05-30 作者: 小编 阅读量: 3 栏目名: 生活百科

企业Web网站很多直接对Internet提供服务,往往会被黑客作为恶意攻击的突破口,Web的安全和企业的信息安全高度相连。今天介绍如何利用GitHut上的SimpleAutoBurp项目,利用Python脚本实现网站的定时的自动扫描,这样能够在更短的时间发现Web系统的漏洞。GitHub上的脚本针对Linux平台,本文将脚本修改为在Windows平台上运行。

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

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

今天介绍如何利用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 strerrorfrom subprocess import Popenimport requestsimport timeimport subprocessimport loggingimport osimport signalimport jsonimport sysfrom 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 rootLoggerlogFormatter = 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.pidexcept:rootLogger.error("Burp Suite failed to execute.")exit()def check_burp(site):count = 0url = "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 extensionstime.sleep(30)breakelse: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 dataelse: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"] + filerootLogger.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 Prochild_pid = execute_burp(site)# Check if API burp is upcheck_burp(site)# Execute Scandata = execute_scan(site)# Get Vulnerability dataget_data(data, site)# Stop BurprootLogger.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服务开启方法

Burp Suite Pro 开启REST API 界面

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

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

    推荐阅读
  • 形声字是什么(形声字的定义是什么)

    接下来我们就一起去研究一下吧!形声字是什么形声字是指汉字的一种造字方式,是在象形字、指事字、会意字的基础上形成的,由两个文或字复合成体,由表示意义范畴的意符(形旁)和表示声音类别的声符(声旁)组合而成。形声字是最能产的造字形式。意符一般由象形字或指事字充当,声符可以由象形字、指事字、会意字充当。

  • 苹果手机重启后怎么恢复出厂设置(苹果手机停用了怎么恢复出厂设置)

    苹果手机重启后怎么恢复出厂设置以iPhonexs,ios13版本为例:1、首先点击手机桌面的“设置”选项。iPhone可以使用iCloud恢复数据,在设置面板,拉到最下方找到iCloud。也可以使用itunes恢复已备份的数据,将苹果手机与电脑USB连接,然后在电脑上使用iTunes进行备份,之后需要恢复时再连接进行恢复。

  • 未来B2大货司机紧缺

    现在司机的缺口很大,货车司机属于高危职业,工作不分昼夜,工资开低了没人干,开高了行情不好车主养活不起司机。真的很难想象,再过几年,等现在的大货司机老了,开不动了,还能不能找到大货司机了,这个职业会不会真的要青黄不接了。有的网友说,马上去考驾照,以后可以赚高薪,我只能说,不要想的那么简单,如果让你一年到头不着家,风餐露宿的,而且时刻伴随着危险,你愿意么?

  • 天津公积金缴费时间段是什么时候 天津公积金什么时候缴纳

    》》》天津公积金缴费时间段是什么时候?

  • cad左右角度怎么画(CAD角度怎么画我来告诉你)

    我们一起去了解并探讨一下这个问题吧!cad左右角度怎么画CAD角度怎么画很多时候,我们在CAD制图的时候需要画带有角度的直线,而且使用的频率是相当的高的,经常看到有人问CAD角度怎么画。那么,我今天心情好,就来回答一下各位朋友的问题。在CAD当中,绘制带有角度的直线有多种方法。A.在命令行输入"L",再按"空格键"。B.命令行提示"指定第一个点:",操作者这时需要在想要的位置点击一点来指定指定第一个点。

  • 原神神樱大祓最后的祝祷怎么过关(神樱大祓最后一关祝祷)

    原神神樱大祓最后的祝祷怎么过关?*第一次祝祷结束后,「瘴晦瘤」也会参加战斗,每隔一段时间会发出数枚毒球。*战斗提醒:1个落武者·咒雷第三次祝祷如图所示,调整祝祷座的勾玉数量。*战斗提醒:1个落武者·祟炎和1个落武者·咒雷战斗结束后,欣赏CG动画,然后捡起面具,掌握白辰之环锻造方法。

  • 传奇好听的名字(比较好听的游戏名)

    倚弦而笑言语里,我来为大家科普一下关于传奇好听的名字?以下内容希望对你有帮助!

  • 郭敬明不再拍小时代(郭敬明回应要拍小时代5)

    郭敬明回应要拍《小时代5》,原班人马再难重聚,新的拍摄方式受好评!当然最不能忽视的也就是《小时代》系列的票房成绩还是非常亮眼的,四部总票房已经突破14亿元。所谓的后续当然指的就是《小时代5》,对于小时代还会不会再拍的问题,郭敬明也是首度在节目中做出了回应。谈起这段时光的时候,郭敬明的眼眶中也是不禁泛起了泪花。不知道《小时代5》上线的时候,大家还会去支持吗?

  • 12分35秒36破5000米世界纪录(40岁硬核老哥打破100公里世界纪录)

    目前,40岁的AleksandrSorokin拥有的世界纪录包括:世界百英里超马纪录、12小时跑和24小时跑世界纪录、100公里世界纪录。而除了AleksandrSorokin的百公里世界纪录,来自英国的SamanthaAmend以总时间14小时10分41秒,打破了由她本人保持的英国女子百英里国家纪录。

  • 减寿的三个习惯(看看哪十件小事会让你减寿)

    可使腹腔内压下降,消化器官的活动与韧带的负荷量增加,从而促使肠子蠕动加剧,易发生肠扭转,使人腹胀、腹痛、呕吐,还容易患胃下垂等病。会使大脑的供氧量随之减少,易引起心口灼热及消化不良,还会发胖。从而影响人体各种正常机能,使人体变得衰弱。再加上抽烟等因素,污染指数将高达普通空气的50倍。如果是静脉瘤、关节炎、神经痛、静脉血栓患者,跷腿会使病情更加严重。