[Jarvis OJ] RE–mysql的udf外部库安全问题

xiaoxiao2021-02-28  9

题目:

并没有网址,只给了一个udf.so的文件,百度一下可以知道与MySQL的外部函数库有关,直接去翻mysql的官方手册最有效。

https://dev.mysql.com/doc/refman/8.0/en/udf-compiling.html

大致意思是可以用C++编写一些函数,编译成so文件供mysql调用,题目已经给了我们so文件,所以我们只要看调用部分就可以了。

首先要注意的是文件放在哪供MySQL调用:

根据文档我们可以看到是一个plugin_dir的系统变量确定了外部函数的位置,

所以我们在MySQL中执行命令 select @@plugin_dir 查看默认值是哪个文件夹:

我的mysql结果:

进入到文件夹:

可以看到这个文件夹包含了各种so文件,看来我们找对了地方。

下一步就是把那个文件放进去,有个简单的方法,直接在这个文件中执行wget命令下载就行,省去虚拟机转移的麻烦:wget https://dn.jarvisoj.com/challengefiles/udf.so.02f8981200697e5eeb661e64797fc172

最后就是如何使用库函数了:

这里用第一句话就行,根据提示,构建help_me函数:CREATE FUNCTION help_me RETURNS string SONAME ‘udf.so.02f8981200697e5eeb661e64797fc172’;

看来还有个getflag函数,同样的方法,先创建再调用:

得到flag:PCTF{Interesting_U5er_d3fined_Function}

记录一点,查询所有udf函数 :elect * from mysql.func

 

如果是window下的MySQL其实过程大同小异,自己尝试就好!

最后补充一篇文章,其实这个漏洞是好早好早之前的啦:

http://www.freebuf.com/articles/system/163144.html

转载指明出处

文章同步到我的博客http://www.zjzhhb.com/archives/439

转载请注明原文地址: https://www.6miu.com/read-2400019.html

最新回复(0)