尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

入门敏感信息泄露

入门敏感信息泄露 敏感文件泄露是指攻击者能够通过应用或服务器存在的漏洞未授权访问到包含敏感信息的文件如系统配置文件、源码、密码、密钥、token 等核心资料。我有一个备份我网站的好习惯靶场考点/漏洞原理备份文件存储在公共服务器且未做访问限制如直接放在网站根目录可通过 URL 下载。目录扫描发现备份文件泄露dirsearch目录扫描用 Burp Intruder 跑字典扫描用工具暴力猜目录和文件名找出隐藏的备份文件Burp 不好用没发现隐藏备份文件使用dirsearch等工具对目标网站进行目录枚举发现存在/backup.zip文件。常用扫描命令场景命令最基础扫描py -3.11 dirsearch.py -u http://目标地址/只扫描指定扩展名的文件py -3.11 dirsearch.py -u http://目标地址/ -e zip,bak,tar.gz -f扫描目录 指定扩展名py -3.11 dirsearch.py -u http://目标地址/ -e zip,bak -t 30使用自定义字典py -3.11 dirsearch.py -u http://目标地址/ -w 字典路径 -e zip排除 404 状态码py -3.11 dirsearch.py -u http://目标地址/ -x 404保存结果到文件py -3.11 dirsearch.py -u http://目标地址/ -o result.txtpy -3.11 dirsearch.py -u http://hbc2.haobachang.com:33457/ -e bak,zip,tar.gz -f -t 30参数拆解参数值作用-uhttp://hbc2.haobachang.com:33457/目标网址-ebak,zip,tar.gz只扫描这 3 种后缀的文件-f无值只扫文件不扫目录速度更快-t3030 个线程同时跑平衡速度和稳定性扫描结果怎么看[13:20:59] 200 - 2KB - /backup.zip字段含义[13:20:59]发现时间200HTTP 状态码200存在且可访问403存在但禁止404不存在2KB文件大小大于 0 说明真有内容/backup.zip找到的文件路径重点关注状态码200文件大小 0文件名包含backup、bak、zip、www、web、flag等关键词常见问题和解决方法问题解决方法扫描全是 404换更大的字典或用-e指定更多扩展名扫描结果全部 200 但长度一样服务器对所有不存在的路径返回自定义 200 页面需要看响应长度Length筛选扫描速度太慢调高线程-t 50或-t 100扫描被服务器封 IP降低线程-t 10或加延时找不到任何文件重启靶机靶机可能未完全初始化或换更大的字典Python 版本太低升级到 Python 3.11解压发现有两个源码文件其中一个如下是flag 的获取核心逻辑?php $flag_file /tmp/flag.txt; // Flag 文件在服务器上的绝对路径 if (file_exists($flag_file)) { // 检查文件是否存在 $content file_get_contents($flag_file); // 读取文件内容 echo htmlspecialchars($content, ENT_QUOTES | ENT_SUBSTITUTE, UTF-8); // 安全地输出内容 } else { echo flag 文件不存在; // 如果文件不存在提示 } ?这段代码的意思很简单它告诉服务器去读取/tmp/flag.txt这个文件。如果文件存在就把内容显示在网页上。如果文件不存在就显示flag 文件不存在。这道题的核心知识点信息收集目录扫描是 CTF 中最基础也最重要的技能能帮你发现隐藏的文件和路径。源码审计拿到备份文件后通过阅读源码找到突破口。备份文件泄露很多开发者习惯用backup.zip、www.zip、web.zip等备份网站但忘记删除导致源码泄露。不要过度复杂化有时候题目设计的解法就是直接访问某个文件不需要复杂的攻击链。漏洞修复/规避方法我喜欢用SVN什么是SVNSVN全称 Subversion是常用的版本控制系统主要用于团队协作开发时管理文件如代码、文档的修改记录。它能追踪文件的创建、修改、删除历史支持多人同时编辑同一文件还能恢复到历史版本避免协作冲突。日常使用中项目目录下会生成.svn旧版本或.svn-base新版本等隐藏文件存储版本控制相关数据。操作方法依旧用 dirsearch 扫描目标网址发现敏感信息查看敏感信息获取 flag。清理遗留文件在生产环境中删除所有备份文件、临时文件、版本控制文件如 .git、.svn等。限制目录访问在 Web 服务器配置中限制对敏感目录和文件的访问如通过 .htaccess、nginx 配置禁止访问 .zip、.bak 等扩展名。代码审查与部署流程在代码部署前进行安全检查确保不包含调试接口或敏感信息使用自动化工具扫描遗留文件。监控与告警对网站的访问日志进行监控设置告警规则及时发现异常的目录扫描行为。C:\Users\Administratorcd dirsearchC:\Users\Administrator\dirsearchpy -3.11 dirsearch.py -u http://hbc2.haobachang.com:37796目录扫描发现/.svn/下载/.svn/wc.db用 SQLite 打开查NODES表里的local_relpath字段找到所有.php文件名访问http://目标地址/[文件名].php漏洞修复/规避方法删除已泄露的 SVN 残留文件禁止访问 .svn、_svn 等敏感目录在项目根目录创建 .gitignore或 SVN 的 svn:ignore明确忽略 .svn、.svn-base、版本日志等文件禁止纳入版本控制。我喜欢用git什么是git泄露开发者在用 Git 管理代码时会把.git目录上传到服务器上比如网站根目录。攻击者可以通过访问http://目标/.git/来下载整个仓库从而获取完整的源代码、配置文件、甚至数据库密码。.git目录里有什么文件/目录内容危害.git/index文件索引所有被跟踪的文件名暴露项目结构和文件名.git/config仓库配置远程地址、用户名等可能泄露服务器地址和账号.git/HEAD当前分支如ref: refs/heads/main暴露代码分支信息.git/objects/所有文件的压缩存储完整内容最严重可恢复所有源代码.git/logs/提交历史暴露代码修改记录和作者信息.git/refs/分支和标签引用暴露所有分支信息依旧 dirsearch 扫描到 git访问/.git/在 index 二进制乱码明文中得到 php 名称访问得到 flag。常用工具工具用途安装方式GitHack从.git泄露中提取源码Python 2git clone https://github.com/lijiejie/GitHack.gitgit-dumper下载完整 Git 仓库Python 3pip install git-dumperGitTools提取.git泄露的工具集git clone https://github.com/internetwache/GitTools.gitdirsearch目录扫描发现.gitpip install dirsearch使用示例# 用 git-dumper 下载完整仓库 git-dumper http://目标地址/.git/ ./repo/ 用 GitHack 提取 python GitHack.py http://目标地址/.git/防御措施措施说明禁止访问.git在nginx或apache中配置禁止.git目录被访问部署时删除.git上线前删除.git目录或使用git archive打包不将.git放在 Web 根目录将仓库放在 Web 根目录之外使用.gitignore避免敏感文件被提交到仓库Nginx 配置示例nginxlocation /.git { deny all; return 403; }Apache 配置示例apacheDirectory ~ \.git Order allow,deny Deny from all /Directory快速操作清单以后遇到直接套用bash# 1. 扫描发现 .git dirsearch -u http://目标地址/ -t 30py -3.11 dirsearch.py -u http://hbc2.haobachang.com:33457/ -t 30# 2. 提取文件名 curl http://目标地址/.git/index -o index strings index | findstr .php 3. 访问隐藏 PHP 文件 http://目标地址/[提取到的文件名].php
返回列表