网站备份文件扫描
发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,网站备份文件扫描0x00 需求在安全测试过程中,第一步就需要信息收集,信息收集时我们需要扫描网站根目录下是否存在备份文件。0x01 代码编写扫描网站根目录下是否存在备份文件需要发起http请求,第一次
千家信息网最后更新 2024年09月22日网站备份文件扫描
网站备份文件扫描
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安全错误
数据库的锁怎样保障安全
浙江云客网络技术
包装箱设计软件开发
山西统一软件开发价格服务标准
四川省国家网络安全局
赵志宏共建网络安全环境
计算机网络技术和云计算的区别
东莞市光速网络技术
网络安全问题app断网
与高校的软件开发协议
松江区软件开发技术怎么样
网络安全l累吗
网络安全法与网络安全等级保护
数据库主键机制
cmd代理服务器
数据库中更新字段的值
顺科软件开发
数据库有必要建立关系吗
苏州市互众网络技术有限公司
福建通用软件开发成交价
企业为什么要用数据库
教师认识网络安全的意义
互联网科技类排行榜
研究生学 网络安全 天赋
日常生活中筑牢网络安全防线
电脑怎么做数据库题目
丹麦黑色素瘤数据库
北京互联网软件开发价格表
浏览器与www服务器
如何成应用软件开发者
网络安全软考全称