常见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 )