SQL注入準備(MySQL查詢語句 URL編碼)

2022-09-20 09:21:09 字數 2154 閱讀 5444

select

user()

; 當前mysql 登入使用者名稱

select

database()

; 當前mysql 資料庫名

select version(

); 當前mysql 版本

select @@version

; 當前mysql 版本

select @@basedir

; 當前mysql 安裝路徑(mysql安裝目錄)

select

(length(

"abc"))

; 字串長度

select concat(

"ab"

,"cd"

); 連線字串

select substring(str,pos,len)

; pos可以是負值,表示倒數取

select substring(

"hello",3

); 返回llo,擷取從第三個字元開始之後的所有字元

select substring(

"hello",2

,2); 返回el,只擷取從第2個字元開始之後的2個字元

select

mid(

"hello",2

,2); 返回el,只擷取從第2個字元開始之後的2個字元

select ord(

"a")

; 返回ascii碼值,用單引號也可

select sleep(4)

; 睡眠4秒,睡眠指定描述

select

*from biao limit m,n; 從表的m行(位置,行從0開始算)開始,取到m+n行(取n條記錄)

select

*from biao limit5,

10; 檢索記錄行 6

-15

在url中,如果是get請求(也就是在瀏覽器中輸入的url) 解釋執行的時候,url中#號是用來指導瀏覽器動作的,對伺服器端無用。

所以,http請求中不包括#,使用#閉合無法注釋,會報錯;而使用--(有個空格),在傳輸過程中空格會被忽略,同樣導致無法注釋。

所以在get請求傳參注入時才會使用--+(或者--%20)的方式來閉合,因為+會被解釋成空格。

--%20把空格轉換為urlencode編碼格式。同理把#變成%23,也不報錯。

urlencode是乙個函式,可將字串以url編碼,用於編碼處理。

如果是post請求,則可以直接使用#來進行閉合。常見的就是表單注入,如我們在後台登入框中進行注入。

url(uniform resource locator,統一資源定位器),是www的統一資源定位標誌,指網路位址。

url由4部分組成:協議、主機、埠、路徑。

url編碼(url encoding),也稱作百分號編碼(percent-encoding), 是特定上下文的統一資源定位符 (url)的編碼機制。

編碼原理:

將需要轉碼的字元轉為16進製制,然後從右到左,取4位(不足4位直接處理),每2位做一位,前面加上%,編碼成%xy格式。

例如:空格ascii碼是32,對應16進製制是20,那麼urlencode編碼結果是:%20,但在新標準中空格對應的是+

部分轉換規則如下:

空格	!		"		#		$		%		&		'		(		)		0		1

%20 %21 %22 %23 %24 %25 %26 %27 %28 %29 %30 %31

+ @ : ; < = > ? z ~

%2b %40 %3a %3b %3c %3d %3e %3f %7a %7b %7d %7e

sql注入準備知識

這篇文章會介紹一些sql注入的準備知識,都是基於mysql資料庫的 sql語言是什麼 一種功能極強的關聯式資料庫標準語言,不需要定義如何訪問資料庫,只需要告訴資料庫要做什麼 sql語言的主要功能 基本資料庫資訊 操作查詢出的資料函式 我初期學習的時候一直感到疑惑的語句,在這裡記錄一下 select ...

SQL注入 MySql查詢基礎

登陸 mysql u root p退出 exit 1 檢視所有資料庫 mysql show databases database information schema mysql performance schema 3 rows in set 0.00 sec 從元資料中查詢所有資料庫 mysql...

SQL注入 聯合查詢注入

注入條件 頁面有顯示位,即在乙個 的正常頁面,服務端執行sql語句查詢資料庫中的資料,客戶端將資料展示在頁面中,這個展示資料的位置就叫顯示位。找的注入點 查詢列數 找到顯示位 獲取列中的資訊 注入點 查詢列數 order by 猜測的列數 order by 11 返回正常,有11列 order by...