盲注:服务器没有错误回显时完成的注入攻击
利用了BENCHMARK()函数,该函数用于测试函数性能,利用该函数可以让同一个函数执行若干次,根据返回时间长短变化,判断是否执行成功
通过payload猜测出SQL的版本;
尽量数据库账号时,应该遵循”最小权限原则“
如果要将文件读出后,将结果返回给攻击者,首先需要当前数据库用户有创建表的权限,首先通过LOAD_FILE()将系统文件读出,在通过INTODUMPFILE将该文件写入系统,通过LOAD DATA INFLE将文件导入创建的表中;
除了可以使用INTO DUMPFILE还可以使用INTO OUTFILE,区别在于DUMP FILE 适用于二进制文件,outfile适用于文本文件;写入文件的技巧在于导出一个webshell
MYSQL
通过命令执行 UDF(User-Defined Functions)执行命令
通过lib_mysqlludf_sys提供的几个函数执行系统命令,主要是sys_eval()和sys_exec()
sys_eval() 执行任意命令,将输出返回
sys_exec()执行任意命令,将推出码返回
sys_get 获取一个环境变量
sys_set 创建或修改一个环境变量
在MS SQL Server中 可以直接使用存储过程”“xp_cmdshell”执行系统命令
攻击存储过程
MS SQL Server中 可以直接使用存储过程”“xp_cmdshell”执行系统命令
编码问题:统一数据库、操作系统、web应用所使用的字符集,避免各层对字符的