(二)SQL注入常用的内置函数整理(以MySql为例)
【1】
@@datadir 函数
作用:返回数据库的存储目录
构造SQL语句 select @@datadir;
![](https://img2018.cnblogs.com/blog/782175/201909/782175-20190905170521356-562649654.png)
【2】
@@version_compile_os 函数
作用:查看服务器的操作系统
SQL语句:select @@version_compile_os;
![](https://img2018.cnblogs.com/blog/782175/201909/782175-20190905170551358-23859589.png)
【3】
database() 函数
作用:查看当前连接的数据库名称
SQL语句:select database();
![](https://img2018.cnblogs.com/blog/782175/201909/782175-20190905170637354-615533796.png)
【4】
user() 函数
作用:查看当前连接数据库的用户
SQL语句:select user();
![](https://img2018.cnblogs.com/blog/782175/201909/782175-20190905170715396-1702794328.png)
![](https://upload-images.jianshu.io/upload_images/4866277-32e78b94c05eb0e9.png?imageMogr2/auto-orient/strip|imageView2/2/w/178/format/webp)
【5】
version() 函数
作用:查看数据库的版本
SQL语句:select version();
![](https://img2018.cnblogs.com/blog/782175/201909/782175-20190905170802367-164186194.png)
![](https://upload-images.jianshu.io/upload_images/4866277-902da32bb59531dd.png?imageMogr2/auto-orient/strip|imageView2/2/w/195/format/webp)
【6】
concat(str1,str2) 函数
作用:连接两个字符串并传入数据库
预先准备好一个数据库的表user,其下有字段:id,user,password,...
SQL语句:select concat(user,password) from user;
实现无间隔连接字符串user和password
![](https://img2018.cnblogs.com/blog/782175/201909/782175-20190905171019353-532897352.png)
![](https://upload-images.jianshu.io/upload_images/4866277-e542849aa37c9e50.png?imageMogr2/auto-orient/strip|imageView2/2/w/642/format/webp)
【7】
concat_ws(separator,str1,str2) 函数
作用:用分隔符连接两个字段的字符串
SQL语句:select concat_ws('--',user,password) from user;
实现用分隔符"--"连接字符串user和password
![](https://img2018.cnblogs.com/blog/782175/201909/782175-20190905171130353-1369930733.png)
![](https://upload-images.jianshu.io/upload_images/4866277-ccb0e590b2df13e3.png?imageMogr2/auto-orient/strip|imageView2/2/w/469/format/webp)
【8】
group_concat(str1,str2) 函数
作用:将多行查询结果以逗号分隔全部输出
SQL语句:select group_concat(user,password) from user;
实现将每一行的字符串user和password连接起来,多行之间用逗号隔开,多行一起输出
![](https://img2018.cnblogs.com/blog/782175/201909/782175-20190905171409379-172747158.png)
【9】
group_concat(concat_ws(seperator,str1,str2)) 函数
作用:将多行查询结果以逗号分隔全部输出,每一行的结果可用设置的分隔符作字段的间隔
SQL语句:select group_concat(concat_ws('--',user,password)) from user;
实现将每一行的字符串user和password用符号"--"连接起来,多行之间用逗号隔开,多行一起输出
![](https://img2018.cnblogs.com/blog/782175/201909/782175-20190905171508367-2049038578.png)
![](https://upload-images.jianshu.io/upload_images/4866277-c3f873ae9cdf5230.png?imageMogr2/auto-orient/strip|imageView2/2/w/759/format/webp)