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

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

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

企业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流程。

    推荐阅读
  • 苍蝇的蝇怎么组词(蝇如何组词)

    如蝇逐臭[rúyíngzhúchòu]:逐:追赶像苍蝇那样追赶有臭味的东西比喻坏人追逐邪恶的东西或指趋炎附势的行为,现在小编就来说说关于苍蝇的蝇怎么组词?下面内容希望能帮助到你,我们来一起看看吧!苍蝇的蝇怎么组词如蝇逐臭[rúyíngzhúchòu]:逐:追赶。蝇营狗苟[yíngyínggǒugǒu]:营:钻营,图求。指像苍蝇那样追逐脏物,像狗一样苟且求生。比喻为追求名利而不顾廉耻,不择手段。也作“狗苟蝇营”。

  • 初一上册英语重点单词大全(初中英语7-9年级单词汇总)

    初中英语7-9年级单词汇总,仅此一份,务必珍藏!1七年级上册2八年级上册3九年级上册

  • 未来10年雷克萨斯概念车(雷克萨斯或推出20万元区间小型跨界车)

    雷克萨斯UX今年已经多次传出雷克萨斯将打造定位在UX之下的小型跨界休旅,而日本媒体《MagX》近日再度透露,这款小型跨界将和丰田雅力士cross采用相同平台打造,预期会在2023年推出,售价有望低于3万美元。动力配置上,根据日媒的说法,将搭载1.5升混合动力动力系统,通过1.5升直列三缸DynamicForce自然进气汽油引擎,搭配上电动马达组成,能输出116匹最大综效马力,并且具备优异的油耗表现。

  • 2022重庆渝北大学生希望工程助学金怎么申请?

    活动内容资助项目茅台助学金、唯立助学金资金用途资助困难家庭大学新生学费、生活费,帮助学子顺利进入大学校园。资助标准茅台助学金:5000元/人/年唯立助学金:5500元/人/年资助时间1-4年不等资助项目所需材料茅台助学金所需材料:附件1、学生本人身份证、录取通知书复印件、家庭经济困难情况证明唯立助学金所需材料:附件2、附件3、学生本人身份证、录取通知书复印件、家庭经济困难情况证明扫描二维码下载附件1

  • 建筑行业主要岗位职责(在建筑工程行业混)

    作好特殊作业人员的登记管理工作,督促遵守安全生产制度,持证上岗,不违章作业。

  • 坚持科技赋能助力产业发展(以科技助力一二三产业融合发展)

    坚持科技赋能助力产业发展农村集体“三资”是指集体所有制下农村集体所有的资金、资产和资源,其管理的有效性紧密关系着集体经济的发展程度和农民权益的实现程度。以科技助力,促进集体“三资”增值,是维护农民财产权益、实现村股份经济合作社良性运营的重要举措,直接关系到新型集体经济的前途。

  • 荷包蛋要放盐吗(煎荷包蛋的时候要不要放盐)

    荷包蛋要不要放盐看个人需求煎鸡蛋很简单,在热锅中倒入适量的油,油尽量不要放太多,要不可能导致你的鸡蛋比较油腻,孩子可能不太爱吃所以,油适量即可,我来为大家讲解一下关于荷包蛋要放盐吗?荷包蛋要放盐吗荷包蛋要不要放盐看个人需求。油能够将盐充分化开,是咸淡分散的更加均匀。当两面都比较好了的时候就可以将鸡蛋捞出锅啦。

  • 航空煤油和航空汽油的区别是什么(航空煤油和航空汽油的区别介绍)

    航空煤油和航空汽油的区别是什么航空煤油是由直馏馏分、加氢裂化和加氢精制等组分及必要的添加剂调和而成的一种透明液体。主要由不同馏分的烃类化合物组成。航空汽油是复杂烃类碳原子数约4~12)的混合物。用量最大的轻质石油产品之一,是发动机的一种重要燃料。多用在轿车上,容易汽化。

  • 王晶导演的电影特色总结(鬼才导演王晶经典电影推荐)

    2《新英雄本色》由王晶执导,刘青云、郑伊健、邱淑贞、王敏德、邹兆龙、秦沛等人主演的剧情片。讲述了黄飞鸿结识寻找妹妹的铁燕父女,铁燕父女发现朝廷的捕快正和僧人在商议贩卖人口的计策。但不料行踪被发现,结果父亲被打伤,女儿只好逃出去向黄飞鸿求救的故事!讲述小白菜被巡抚刘希同提审,被控与举人杨乃武有一腿,合谋加害亲夫。杨乃武严词据理,拒不认罪,碍于其举人身份,刘巡抚不宜动刑,只有收监。