sqli-labs:7,導入導出;8-10 延時註入
1,Load_file()導出文件
使用條件:
A.必須有權限讀取並且文件必須完全可讀(and (select count(*) from mysql.user)>0/* 如果結果返回正常,說明具有讀寫權限。)
B.欲讀取文件必須在服務器上
C.必須指定文件完整的路徑(常用路徑)
D.欲讀取文件必須小於 max_allowed_packet
2,LOAD DATA INFILE文件導入到數據庫
3,select ... into outfile ‘filename‘文件導入到數據庫
兩種方法:
1.select version() into outfile “c:\\phpnow\\htdocs\\test.php” 此處將 version()替換成一句話,也即Select into outfile “c:\\phpnow\\htdocs\\test.php”
2.Select version() Into outfile “c:\\phpnow\\htdocs\\test.php” LINES TERMINATED BY 0x16(在 sqlmap 中 os-shell 采取的就是 這樣的方式,具體可參考 os-shell 分析文章:http://www.cnblogs.com/lcamry/p /5505110.html)
上述我們提到了 load_file(),但是當前臺無法導出數據的時候,我們可以利用下面的語句:
select load_file(‘c:\\wamp\\bin\\mysql\\mysql5.6.17\\my.ini’) into outfile ‘c:\\wamp\\www\\test.php’
可以利用該語句將服務器當中的內容導入到 web 服務器下的目錄,這樣就可以得到數據了。 上述 my.ini 當中存在 password 項(不過默認被註釋),當然會有很多的內容可以被導出來, 這個要平時積累。
sqli7:
對id做了‘))過濾
上傳文件
ok!可以看見雖然報錯,但還是註入成功。
上傳後門
菜刀鏈接成功!
sqli8
和5比較,將報錯的語句註釋了,不能使用報錯註入。
sqli9:
對id經過了‘處理,明文規定延時註入
sqli10:
對id經過了"處理,明文規定延時註入
sqli-labs:7,導入導出;8-10 延時註入