网站备份文件扫描
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,网站备份文件扫描0x00 需求在安全测试过程中,第一步就需要信息收集,信息收集时我们需要扫描网站根目录下是否存在备份文件。0x01 代码编写扫描网站根目录下是否存在备份文件需要发起http请求,第一次
千家信息网最后更新 2025年01月20日网站备份文件扫描
网站备份文件扫描
0x00 需求
在安全测试过程中,第一步就需要信息收集,信息收集时我们需要扫描网站根目录下是否存在备份文件。
0x01 代码编写
扫描网站根目录下是否存在备份文件需要发起http请求,第一次编写时使用的是requests模块的get请求,当进行测试时发现脚本会卡住,通过分析得知,当get一个存在的备份文件时,相当于下载,如果备份文件很大则需要等待超长时间。因此通过查找资料发现使用requests模块head方法时可以解决以上遇到的问题。
head方法简介:
HEAD方法与GET方法的行为很类似,但服务器在响应中只返回实体的主体部分。这就允许客户端在未获取实际资源的情况下,对资源的首部进行检查,使用HEAD,我们可以更高效的完成以下工作:
- 在不获取资源的情况下,了解资源的一些信息,比如资源类型;
- 通过查看响应中的状态码,可以确定资源是否存在;
- 通过查看首部,测试资源是否被修改。
0x02 代码
#!/usr/bin/env python# -*- coding: utf-8 -*-#命令行from pocsuite import pocsuite_cli#验证模块from pocsuite import pocsuite_verify#×××模块from pocsuite import pocsuite_attack#控制台模式from pocsuite import pocsuite_console#requests from pocsuite.api.request import req#registerfrom pocsuite.api.poc import register#reportfrom pocsuite.api.poc import Output, POCBase#url转换hostfrom pocsuite.lib.utils.funs import url2ipclass webBackPOC(POCBase): vulID = '1' # ssvid ID 如果是提交漏洞的同时提交 PoC,则写成 0 version = '1' #默认为1 vulDate = '2018-07-12' #漏洞公开的时间,不知道就写今天 author = 'xiaohuihui1' # PoC作者的大名 createDate ='2018-07-12'# 编写 PoC 的日期 updateDate = '2018-07-12'# PoC 更新的时间,默认和编写时间一样 references = ['']# 漏洞地址来源,0day不用写 name = 'website back '# PoC 名称 appPowerLink = [''] # 漏洞厂商主页地址 appName = '网站备份文件下载'# 漏洞应用名称 appVersion = 'all versions'# 漏洞影响版本 vulType = 'information leakage'#漏洞类型,类型参考见 漏洞类型规范表 desc = ''' 网站备份文件下载 ''' # 漏洞简要描述 samples = []# 测试样列,就是用 PoC 测试成功的网站 install_requires = [] # PoC 第三方模块依赖,请尽量不要使用第三方模块,必要时请参考《PoC第三方模块依赖说明》填写 cvss = u"严重" #严重,高危,中危,低危 #指纹方法 def _fingerprint(self): pass #验证模块 pocsuite -r 1-redis.py -u 10.1.5.26 --verify def _verify(self): import requests import hashlib result = {} vul_url = '%s' % self.url if(vul_url.endswith("/")): test_url = vul_url+"aswe2sda2323ra2.html" else: test_url = vul_url+"/aswe2sda2323ra2.html" vul_url+="/" test_html = requests.head(test_url,timeout=5).text #md5值 hl = hashlib.md5() test_html.replace("aswe2sda2323ra2.html","") hl.update(test_html.encode(encoding='utf-8')) test_md5 = hl.hexdigest() domain=vul_url.split(".")[1].split(".")[0] fileName = ['www','admin','wwwroot','web','data','ftp','flashfxp',domain] suffix = ['zip','tar.gz','rar']#后缀列表 result2=[] for fn in fileName: for s in suffix: try: tmp = requests.head(vul_url+fn+"."+s,timeout=5) if(tmp.status_code == 200): result2.append(fn+"."+s) except Exception as e: print e pass if(len(result2) != 0): result['VerifyInfo'] = {} result['VerifyInfo']['URL'] = vul_url result['VerifyInfo']['Payload'] = result2 return self.save_output(result) #×××模块 def _attack(self): pass #输出报告 def save_output(self, result): #判断有无结果并输出 output = Output(self) if result: output.success(result) else: output.fail() return output#注册类register(webBackPOC)
模块
漏洞
备份
文件
资源
网站
方法
时间
类型
测试
信息
第三方
代码
名称
地址
情况
文件下载
根目录
参考
输出
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
学计算机网络技术需求什么
python 数据库备份
北京地铁网络技术流
网络安全课堂之安全实践活动
软件开发公司的销售是干嘛的
如何免费获得服务器
服务器怎么设定ipv6
运行 mysql数据库
南京助力智慧工地软件开发
数据库中表以
高级软件开发工程师是职称吗
中国网络安全意识
台式服务器的组成
龙山市网络安全执法
北京韩和通网络技术有限公司
服务器市场经理
1u服务器托管价格
介绍网络安全
北京智能软件开发销售厂家
北京软件开发的收入
兴采网络安全科技馆
广州智能软件开发费用是多少
家庭文件服务器ssl
1000M宽带服务器多少钱
海门工业无线串口服务器
网络安全法采集日志
宁德小程序软件开发
专科计算机网络技术论文简单方向
怎么查看网站有没有服务器证书
mysql数据库监控脚本