sql注入的注釋區別

2022-10-11 04:27:13 字數 1119 閱讀 7298

以mysql為例,我們知道mysql注釋符有#、-- (後面有空格)、/**/三種,但是在sqlilabs注入中不同場景使用的注釋符不同。

一、get型注入

在url欄中輸入注入語句時,-- 和#注釋都會報錯

然而使用--+,--%20和%23就能成功注釋(%20是空格的url編碼,%23是#的url編碼)

原因:--+和--%20在傳輸到後端時會變成-- ,而url中的#號代表html頁面中的錨點,資料傳輸過程並不會一起帶到後端,所以需要使用%23

二、post型注入

直接使用-- 或#就行,因為是post提交的資料,所以不用進行url編碼,是post原文

三、注釋符/**/

因為注釋符#、-- 都是把後面的語句全部注釋掉了,而內聯注釋/**/則是注釋指定部分,需要一前一後閉合,所以在傳參那裡幾乎不做注釋語句用,而是用於過濾空格等bypass,如:

?id=-1'/**/union/**/select/**/1,2,database()--+   //過濾空格,用/**/代替空格
四、單引號(')閉合後面的'

SQL注入 和 的區別

解析為乙個 jdbc 預編譯語句 prepared statement 的引數標記符。例如,sqlmap 中如下的 sql 語句 select from user where name 解析為 select from user where name 乙個 被解析為乙個引數佔位符 僅僅為乙個純碎的 s...

mysql 注釋 繞過 sql注入繞過方法

一 注釋符號繞過 在sql中常用的注釋符號有 二 大小寫繞過 當web正則過濾的時候對大小寫不敏感的情況下使用,一般很少會有這種漏洞 比如當過濾了select的時候我們可以採用select來查詢 三 內聯注釋繞過 把要使用的查詢語句放在 中,這樣在一般的資料庫是不會執行的,但是在mysql中內聯注釋...

mysql 注釋 繞過 SQL注入繞過技巧

1.繞過空格 注釋符 a0 兩個空格代替乙個空格,用tab代替空格,a0 空格 20 09 0a 0b 0c 0d a0 00 最基本的繞過方法,用注釋替換空格 注釋 使用浮點數 select from users where id 8e0union select 1,2,3 select from...