資料庫支援,並採用gbk格式進行編碼
在獲取url資料時,使用addslashes或是其他方式對單引號'
進行了轉義,使其變成了\'
,php的get、post等方法預設都會進行此操作
上面的兩個條件缺一不可,gbk編碼不太好確定,但是第二個比較好確認,例如輸入的url為?id=1'
,返回了?id=1\'
當遇到上述的兩個反斜槓時,可以有以下兩種思路:
gbk編碼會把連續的兩個字元視作是乙個漢字字元,當且僅當第乙個字元的ascii碼大於128,常用的第乙個字元是%df
,不過像%a1
什麼的都可以
也就是說,當遇到如下的url時:
?id=1%a1%27%20or%201=1 # ?id=1%a1' or 1=1
在伺服器進行了如下兩個步驟:
在%27
,即單引號之前新增乙個反斜槓\
%a1\
兩個字元被gbk
編碼識別成了乙個漢字字元,\
對於單引號'
的轉義功能失效,變成where id = '1﹏' or 1=1
然後就能逃過對單引號的侷限,為所欲為啦
SQL注入總結
在大部分語言中都一樣是注釋。這個之中的語句是不被執行的。但mysql中 為了保持相容,比如從mysqldump 匯出的sql語句能被其它資料庫直接使用,它把一些特有的僅在mysql上的語句放在 中,這樣這些語句如果在其他資料庫中是不會被執行,但在mysql中它會執行。僅當mysql的版本等於或高於指...
sql注入總結
第一天 url 統一資源定位符 協議 主機號 目錄 注釋符 20 代表空格 order by 15 閉合條件為 猜測列數 union all select 1,2,3 猜測顯示位 select schema name from information schema.schemata 查庫名 sele...
Sql注入總結
1 利用閉合變數報錯測試注入點,id 1 這樣說明存在單引號閉合注入 2 是否存在注入點,用and語句測試 id 1 and 1 2 id 1 and 1 1 3 猜測字段 id 1 order by 3 23 4 找到頁面中資料輸入點 id 1 union select 1,2,3 23 5 查資...