2024西湖论剑 web1
整体流程:
MYSQL任意文件读取->读取query.php->获得用户名密码->UDF提权
复习过程:
初始界面:

这里可以随意设置数据库地址,那么我们可以使用Mysql任意文件读取
https://github.com/allyshka/Rogue-MySql-Server
下载下来放在服务器
修改rogue_mysql_server.py

然后执行(使用python2,需要占用3306端口)

可以通过netstat -lnpt命令看一下启动了没有
启动了以后输入我们的IP地址和用户名root,密码root数据库名随便
然后在服务器上会生成musql.log文件

打开看一下

发现执行了,然后重新在看一下index.php和query.php

发现用户名密码等信息

然后进入执行数据库命令

本以为是通过sql语句写shell,但是测试后发现不是,是udf提权
通过show variables like '%plugin%';命令
发现路径
访问一下url(这里有现成的)
https://www.sqlsec.com/tools/udf.html#linux64
将一下内容复制下来

再将最后的url给替换一下

然后放入sql命令中执行后再执行:
CREATE FUNCTION sys_eval RETURNS STRING SONAME 'udf.so';
再执行
select sys_eval('env')
得到flag