常见sql注入函数
- version():mysql版本
 - user():用户名
 - database():数据库名
 - @@datadir:读取数据库路径
 - @@version_compile_os:操作系统版本
 - concat(str1,str2,…):没有分割符地连接字符串,显示数据(数据合并)
 - group_concat(str1,str2,…):连接一个组的所有字符串,并以逗号分割每一条数据,显示数据
 - into outfile:写文件{select ‘需要写的文件’ into outfile ‘目录下’}
 - select ‘123123’ into outfile ‘d://study/1.txt’;(将123123添加至d盘study中新建1.txt文件中)
 - group_concat(列名):会把这一列中所有的内容在一行中以,隔开输出
 - select load_file(读文件路径);
 - length() =>计算字符串长度
 - hex() =>字符转换为16进制
 - @@basedir MYSQL获取安装路径
 - concat_ws(separator,str1,str2):用分隔符连接两个字段的字符串
 - group_concat(concat_ws(seperator,str1,str2)):将多行查询结果以逗号分隔全部输出,每一行的结果可用设置的分隔符作字段的间隔
 
截取字符串常用函数
1.mid()函数
- 作用:从一个字符串中截取出指定数量的字符
 - 
格式:mid(striing,start,length)
 - Eg:
 
- MID(DATABASE(),1,1)>’a’,查看数据库名第一位,MID(DATABASE(),2,1)查看数据库名第二位,依次查看各位字符。
 - MID((SELECT table_name FROM INFORMATION_SCHEMA.TABLES WHERE T table_schema=0xxxxxxx LIMIT 0,1),1,1)>’a’此处column_name参数可以为sql语句,可自行构造sql语句进行注入。
 
2.substr()函数
作用:与substring()函数实现的功能一样,均为截取字符串。
- 
格式:
string substring(string, start, length)
string substr(string, start, length)
 Eg:
- substr(DATABASE(),1,1)>’a’,查看数据库名第一位,substr(DATABASE(),2,1)查看数据库名第二位,依次查看各位字符。
 - substr((SELECT table_name FROM INFORMATION_SCHEMA.TABLES WHERE T table_schema=0xxxxxxx LIMIT 0,1),1,1)>’a’此处string参数可以为sql语句,可自行构造sql语句进行注入。
 
3.Left()函数
- 作用:得到字符串左部指定个数的字符
 - 
格式:Left ( string, length )
 


