load_file与into outfile
load_file
在MySQL中,LOAD_FILE()函数读取一个文件并将其内容作为字符串返回
条件限制:
- 必须有权限读取并且文件必须完全可读。
and (select count(*) from mysql.user)>0 /*如果结果返回正常,说明具有读写权限.*/
and (select count(*) from mysql.user)>0 /* 返回错误,应该是管理员给数据库账户降权了*/
-
欲读取文件必须在服务器上
-
必须指定文件完整的路径
在很多PHP程序中,当提交一个错误的查询时,如果display_errors=on,程序就会暴露web目录的绝对路径,只要知道路径,那么对于一个可以注入的PHP程序来说,整个服务器的安全将受到严重的威胁 -
欲读取文件必须小于max_allowed_packet
如果该文件不存在,或因为上面的任一原因而不能被读出,函数返回空。比较难满足的就是权限。
在windows下,如果NTFS设置得当,是不能读取相关的文件的,当遇到administrators才能访问的文件,users就不能实现用load_file读取文件了