数据库权限提升

一、获取数据库的账号密码

(一)拿到webshell之后,查看配置文件;

(2)通过sql注入拿到webshell;

        手工注入可参考我的第一篇文章

        用sqlmap也可以

(3)暴力破解

        通过hydra 进行暴力破解
        hydra ip mysql -l root -P mysql.txt -o save.log -f -vV -e nsr

二、UDF提权

UDF 介绍:
UDF user-defined function )是 MySQL 的一个拓展接口,也可称之为用户自定义函数,它是用来拓展MySQL 的技术手段,可以说是数据库功能的一种扩展。用户通过自定义函数来实现在 MySQL 中无法方便 实现的功能,其添加的新函数都可以在 SQL 语句中调用。利用 UDF ,通过添加命令执行函数可以执行系 统命令,从而实现提权。
原理:用户自定义的函数被当作本机函数执行,在使用 CREATE FUNCITON 调用 dll 中的函数后, mysql账号转化为 system 权限,从而实现提权。

 UDF提权条件:

1.Mysql 版本大于 5.1 版本 (基本都是,小于的话可利用漏洞更多了)
2. 网站本身存在 Getshell 漏洞,可以通过 Webshell 可以将 udf.dll 上传到 Mysql 中的 lib\plugin 目录下
3. 掌握的 Mysql 数据库账号有对 Mysql insert delete 权限以创建和删除函数
4.secure-file-priv 参数不为 null (在本实验中非必须条件)
由第一步已知数据库的账号密码;

(一)连接数据库

(实战中,这是管理员早就弄好的)
环境配置:因我用的php面板的sql_front初始设置不允许外部连接,所以要新增个连接许可:

grant all privileges on *.* to "root"@"%" identified by " 密码 ";

点开新建查询,这里可以执行sql语句命令,点击运行即可;

(二)

        因为我想调用dll函数使用creat function 这个语句,从而获取数据库对应的管理员权限。

        而这个数据库本身没有这个动态链接库,所以我需要写出来并且放到\lib\plugin目录里面去;

        所以要做的有两步:

        1.准备好dll动态链接库;

        2.把dll放进应该的位置;

我先做第二步吧,先找到"冰箱";

先查查信息

这里显示我是root用户,这里的root是数据库的,而不是操作系统的;

找到plugin的绝对路径位置了;

(二)大象进冰箱(至关重要的思路):

接下来制作dll;

(1)什么是dll?

DLL(动态链接库,Dynamic Link Library)是微软 Windows 操作系统中用于存储可执行代码和数据的文件格式。它允许不同的程序共享相同的代码和资源,以便更加高效地使用内存和其他计算机资源。

 DLL的基本概念
  • 动态链接:与静态链接不同,动态链接指的是程序在运行时而不是编译时与库文件进行链接。动态链接库(DLL)是在程序运行时加载并被程序调用的,因此它提供了灵活性和模块化的能力。
  • 库文件:DLL 文件中通常包含函数、类、资源、数据等代码组件。这些代码可以被多个程序共享,不需要每个程序都包含自己的副本。

一个dll文件可以被多个应用程序利用;

不好理解的话,就可以理解成配置文件,不一样的就是配置文件里包含了自定义的函数;

(2)为什么要制作dll?

MYSQL支持UDF,UDF是他的一个扩展接口,通过这个拓展接口,我可以向MYSQL数据库里面去添加我自定义的函数,而现在我们知道了,在DLL文件里面可以包含自定义函数。

说白了,我白说了,就是自定义函数写好在dll文件里面,再把dll文件投递在目标系统(的数据库)里面;

(3)怎么制作dll?

用SQLMAP

为什么用sqlmap,因为他有适配的dll文件(因为sqlmap可以getshell,说明其中有可以执行命令的函数,所以可以直接用sqlmap实现命令执行)

开始找

问我位数,不知道就查一下了;

点进去,是他了;

但是这个是dll_就是编码过的,解码工具也在sqlmap里,找到之后我都放同一个文件夹

cmd,执行python cloak.py -d -i lib_mysqludf_sys.dll_解码了;

放进去,没有\lib\plugin目录就自行创建;名字别打错

(三)创建sys_eval函数,提权

create function sys_eval returns string soname 'lib_mysqludf_sys.dll';

(四)提权成功

这里要注意,因为我虚拟机win7里,Mysql是切换管理员打开的,所以才提权成功,这是对应了实际工作中,web由普通用户搭建,数据库由管理员用户创建;如果小伙伴发现执行了select sys_eval('whoami');还是普通用户,是因为你的虚拟机数据库和网页都是普通用户搭建的,所以提权之后最贵就到这了;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值