sqlmap讀取與寫入檔案
–file-read :從後端的資料庫管理系統檔案系統讀取檔案
–file-write:編輯後端的資料庫管理系統檔案系統上的本機檔案(從本機寫入)
–file-dest :後端的資料庫管理系統寫入檔案的絕對路徑(寫入目標路徑)
可以用以上幾個指令對SQL注入後的系統檔案進行讀寫,但是前提條件是需要有可讀可寫的權限並且為dba權限,否則無法成功進行讀寫操作。
以DVWA為例,在kali下搭建DVWA進行讀取與寫入檔案操作。
讀取檔案:
查看了PHPinfo裡的相關信息,使用-file-read指令進行檔案讀取。
sqlmap -u"http://localhost/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#"--cookie "security=low; PHPSESSID=0o84koanki32dh7jjkckqelqme"-filefile-read " /etc/php/7.3/apache2/php.ini"
# 檔案讀取成功後,會在顯示的資訊中最後有提示提示,要進入到sqlmap輸出的相關路徑下才能讀取的相關的資訊內容。
#寫入檔案:
這裡使用DVWA的指令執行檢視了路徑後,將檔案寫入/ var/www/html/vulnerabilities/exec此路徑下,使用-file-write,-file-dest指令,發現寫入成功。
sqlmap -u"http://localhost/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#"--cookie "security=low; PHPSESSID=0o84koanki32dh7jjkckqelqme"-filefile-write " /usr/test/1.txt" -file-dest "var/www/html/vulnerabilities/execl/1.txt"
(use路徑下建立的1.txt內容)
#(寫入成功後顯示1.txt內容)
#Sqlmap上傳shell (--os-shell)
--os-shell的執行條件有三個:
(1)網站必須是root權限
(2)攻擊者需要知道網站的絕對路徑
(3)GPC為off,php主動轉義的功能關閉
先使用--is- dba指令查看是否為管理員,若不是,則無法使用--os-shell指令。如下圖所示,顯示為true是管理員,不是管理員顯示為false。
接下來使用–os-shell指令,存在註入點後,會提示需要選擇語言,這裡選擇是根據系統使用的語言進行選擇,搭建的DVWA是php,所以這裡選擇了4.
網站的語言選擇完成後會對路徑進行選擇,若知道網站絕對路徑可以選擇2,也可以選擇1常用路徑。
路徑選擇完成後,在寫入時卻提示404,如下圖所示。
回過頭再去查看其它設定是否有問題。前面使用-is-dba,顯示是true,然後在使用命令current-user查看用戶,查看到用戶為dvwauser。在最初設定時系統也提示過Mariadb預設不能使用root權限連接資料庫,但也使用grant all語句給dvwauser賦予了所有權限,寫入路徑也設定了可讀寫的權限,但一直未寫入成功,最後還是使用xampp進行嘗試。 (這裡懷疑過是否因為是root使用者的問題或資料庫版本的問題,畢竟xampp寫入成功)
檢視使用者為dvwauser:
## 賦予dvwauser使用者權限:
無奈之下,使用Xampp搭建DVWA嘗試時,這次發現成功寫入了。
使用xampp進行寫入前,用current-user查看了用戶,如下圖所示,顯示為root,使用-is-dba顯示為true。
寫入成功後,存取寫入檔案的路徑,這裡有一個上傳點,可以上傳,我這上傳了一個php文件,使用蟻劍進行連接成功。
以上是如何使用sqlmapGetshell的詳細內容。更多資訊請關注PHP中文網其他相關文章!