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

    推荐阅读
  • 胖东来是只有河南有吗(河南不只有胖东来)

    梦祥公司的生产基地位于新密市来集镇苏寨村,这也是生养李杰石的地方。这意味着企业要额外承担大量的物流及人工成本。只要销售困难的梦祥产品,梦祥承诺全部回收。同时为客户提供免费送货上门服务,最大程度为客户节约成本。梦祥也通过对于品质的严苛把关,在数千万用户中拥有良好的口碑,口口相传,很多用户在购买银制品是第一时间想到的就是梦祥。

  • 每个月6000的工资是什么水平(6000元一个月的工资)

    因为,我们的五险一金是从自己的工资当中需要扣除单位缴费总额的1/36000块钱的收入,大约你需要扣除五险一金的待遇水平,在1000块钱到2000块钱之间,这样的一个范围之内。但这并不是你全部的一个用工成本,作为企业单位来说,他需要正常承担你的五险一金的费用,而且企业单位是需要承担2/3以上。其实我们国家去年的GDP基本上接近于1,000,000亿美元,平均到每个人的人均GDP大概是不到1万美元。

  • 宝马x5雾灯开关在哪里(宝马x5大灯在哪里打开)

    由于防雾灯亮度高,穿透力强,不会因起雾而造成漫反射,因此正确使用可以有效防止事故发生。作为年度改款车型,2020款宝马X5在外观和内饰设计上并未进行调整,但在换代后依然延续了2019款车型的优秀设计。售价84.99万元的xDrive40i专属M运动套装依然是2020款宝马X5的顶配车型。动力方面,2020款宝马X5继续搭载2.0T直列四缸和3.0T直列六缸发动机,最大功率分别为265马力和340马力,峰值扭矩分别为400牛米和450牛米。

  • 昭通农村低保可享受哪些优惠政策 云南昭通农村低保标准

    通过组织劳务培训和劳务输出,帮助有劳动愿望的人员进城务工,免收培训费;低保对象就业或务工取得收入后,在一年内不计入家庭收入,给予享受原有保障金数额的照顾;申请从事个体经营的,优先办理营业执照,并减免有关费用。对大病患者,自己承担的费用仍难以支付,影响家庭基本生活的,给予适当救助。农村低保对象危房改造的,应优先审批,减免相关费用,尽可能给予各方面资助。

  • 南瓜小餐包的做法(南瓜小餐包简单做法)

    南瓜小餐包的做法面包机桶内,先加入牛奶、鸡蛋、玉米油,盐、糖对角线放置,再加入高筋粉、南瓜泥,最后在面粉上面挖一个小洞,放入酵母。切记不要让酵母接触到盐。两个揉面程序以后检查面团,可以很轻松的拉出薄膜即可。当面团发酵至两倍大,用手指沾面粉轻轻的扎个洞,面团不塌陷不回缩即可。将面团等分成12份,揉圆,静置10分钟。放入模具中进行二次发酵。烤箱提前预热,上下火175度15分钟左右即可。

  • 翡翠福贝的寓意是什么(翡翠福贝的寓意介绍)

    福在眼前福贝中带有一个“福”字,象征着福气,所以翡翠福贝是吉利福气的象征。而翡翠福贝常常被做成美丽的耳坠,成双成对的挂在女性圆润的耳垂上,代表着福在眼前。翡翠福贝寓意之三,财源滚滚。财源滚滚在还没有发明钱币的古代社会,贝壳曾经作为流通货币出现过,而且早期的钱币也常以贝壳的造型为原型,所以我们认为贝壳代表财富,翡翠福贝因此而寓意招财进宝,财源滚滚而来。

  • 南阳高新区医院新冠疫苗到苗通知 南阳中心医院新冠疫苗

    南阳高新区医院新冠疫苗到苗一、接种时间地点南阳高新区医院上午8:00准时开始按排队顺序发号并接种二、疫苗情况接种12-17周岁新冠疫苗第二针,18周岁以上二联新冠疫苗第一针和第二针、三联新冠疫苗第一针第二针和第三针。提前进行信息预建档可以减少接种等待时间。

  • 范成大的古诗有哪些(有哪些范成大的古诗)

    范成大的古诗有哪些《夏日田园杂兴》中秋全景属潜夫,棹入空明看太湖。身外水天银一色,城中有此月明无。《夏日田园杂兴》槐叶初匀日气凉,葱葱鼠耳翠成双。年年送客横塘路,细雨垂杨系画船。两岸烟林,半溪山影,此处无荣辱。荒台遗像,至今嗟咏不足。诸公任他衮衮,与杜陵野老共襟期。《南柯子/南歌子》槁项诗余瘦,愁肠酒后柔。《秦楼月/忆秦娥》窗纱薄。日穿红幔催梳掠。《秦楼月/忆秦娥》珠帘狭。