SQL注入(Get)
阿新 • • 發佈:2020-12-22
SQL注入
當Web應用向後臺數據庫傳遞SQL語句進行資料庫操作時。如果對使用者輸入的引數沒有經過嚴格的過濾處理,那麼攻擊者就可以構造特殊的SQL語句,直接輸入資料庫引擎執行,獲取或修改資料庫中的資料。
實驗環境
攻擊者:Kali Linux(192.168.100.146)
靶機:VMware workstations Pro——Debian 6(32-bit)(192.168.100.132)
注意:當前靶機中並沒有flag值,需要通過靶機上面的SQL注入漏洞獲取資料庫中的內容,登陸網站後臺,利用網站web漏洞getshell
實驗流程
- 實驗環境匯入
利用VMware workstations將iso檔案作為映象檔案進行安裝即可,將攻擊機和靶機全部設定成NAT網絡卡。 - 啟動靶機,資訊探測。
檢測與靶機的網路連通性
命令:ping -c4 192.168.100.132
埠掃描,服務探測
命令:nmap -sV 192.168.100.132
- web漏洞掃描
工具:owasp-zap(kali中的整合工具)
設定好目標http://192.168.100.132,點選攻擊即開始自動掃描
該web漏洞掃描器首先會對網站內容進行爬取,其次利用規則進行主動掃描,最後將掃描結果進行整理顯示。
根據掃描結果發現該網站中存在一個GET型別的SQL注入漏洞可以利用
- 自動注入
工具:sqlmap
a) 獲取MySQL中的資料庫
命令:sqlmap -u http://192.168.100.132/cat.php?id=1 --dbs
其中information_schema是資料庫中MySQL中預設存在的資料庫,photoblog疑似網站使用的後臺資料庫。
b) 獲取資料庫中的資料表
命令:sqlmap -u http://192.168.100.132/cat.php?id=1 -D photoblog --tables
Users表中可能儲存了網站後臺使用者的使用者名稱和登入密碼
c) 獲取資料表中的欄位
命令:sqlmap -u http://192.168.100.132/cat.php?id=1 -D photoblog -T users --columns
嘗試獲取login以及password兩個欄位中的內容
d) 獲取資料庫中的內容
獲取到的密碼是經過hash加密後的密碼,sqlmap會自動使用預設的字典進行爆破攻擊,經過破解得到網站後臺登入使用者名稱為admin,密碼為P4ssw0rd - 登入網站後臺,尋找後臺漏洞
獲取網站後臺登入地址
通過目錄掃描,其中http://192.168.100.132/admin疑似網站後臺登入地址。
登入成功
網站中存在檔案上傳功能,嘗試探測是否存在檔案上傳漏洞;利用msfvenom生成PHP型別的木馬,嘗試上傳。
上傳PHP指令碼
提示不允許上傳PHP型別的檔案
嘗試進行繞過,首先判斷檔案上傳是前端防禦還是後端防禦;如果是前端的js程式碼防禦,就不會像伺服器發出請求,否則就是後端的程式碼防禦。通過瀏覽器的網路功能即可檢視是否有請求發出。
通過判斷是後端防禦,後端防禦的形式非常多,不同的防禦方式對應不同的繞過方式,因為沒有拿到網站後臺的原始碼,所以只能依次進行嘗試。首先嚐試進行字尾名大小寫繞過。
嘗試上傳
上傳成功
使用msfconsole監聽埠
訪問上傳的木馬,反彈shell
獲取許可權