SQL注入初學

2021-09-12 02:11:56 字數 2469 閱讀 4094

結構化查詢語言(structured query language)簡稱sql,是一種特殊目的的程式語言,是一種資料庫查詢和程式語言,用於訪問資料以及查詢、更新和管理關係資料庫系統;同時也是資料庫指令碼檔案的副檔名。

mysql是一種關聯式資料庫管理系統,關聯式資料庫將資料庫儲存在不同表中,可以提高速度並提高靈活性。

mysql所使用的sql語言適用於訪問資料庫的最常用語言

資料庫——表——列——字段

1.注釋符:#,–+,//

2.order by 語句用於對結果集進行排序,注入攻擊中用於測試列的數量。

•攻擊者通過構造惡意的sql語句,使得資料庫執行危險操作。

•比如本來是查詢書籍的語句,結果顯示了使用者的密碼

•比如直接用資料庫寫入檔案。

•▲基於錯誤的sql注入

•▲聯合查詢的型別

•▲堆查詢注射

•▲sql盲注•

•基於布林sql盲注

•基於時間的sql盲注

•基於報錯的sql盲注

•基於如何處理輸入的sql查詢(資料型別)

•基於字串

•數字或整數為基礎的

基於程度和順序的注入(**發生了影響)

★一階注射

★二階注射

version()–mysql版本

user()–資料庫使用者名稱

database()–資料庫名

@@datadir–資料庫路徑

@@version_compile_os–作業系統版本

字串函式具體介紹有些多所以搬運一下但是其實就是知道三個函式的用法

concat(str1,str2,…)————沒有分割符地連線字串

concat_ws(separator,str1,str2,…)————有分隔符的連線字串

group_concat(str1,str2,…)————連線乙個組的所有字串,並以逗號分隔資料

獲取資料庫————資料表————列————資料

在可以提交的引數後新增:

•or1=1–+

•'or1=1–+

•"or1=1–+

•)or1=1–+

•』)or1=1–+

•")or1=1–+

•"))or1=1–+

考慮兩個點,乙個是閉合前面你的『另乙個是處理後面的』,一般採用兩種思路,閉合後面的引號或者注釋掉,注釋掉採用–+或者#(%23)

step1:找出資料庫

•資料庫:

select schema_name from information_schema.schemata

step2:表

select table_name from information_schema.tables where table_schema=『security』;

//假設資料庫名字為security

step3:列

•猜某錶的所有列

•select column_name from information_schema.columns where table_name=』users』

假設表名為users

step4獲取內容:

•獲取某列的內容

•select *** from ****

information_schema的說明

•information_schema資料庫是mysql自帶的,它提供了訪問資料庫元資料的方式。什麼是元資料呢?元資料是關於資料的資料,如資料庫名或表名,列的資料型別,或訪問許可權等。有些時候用於表述該資訊的其他術語包括「資料詞典」和「系統目錄」。

•在mysql中,把

information_schema 看作是乙個資料庫,確切說是資訊資料庫。其中儲存著關於mysql伺服器所維護的所有其他資料庫的資訊。如資料庫名,資料庫的表,表欄的資料型別與訪問權

限等。在information_schema中,有數個唯讀表。它們實際上是檢視,而不是基本表,因此,你將無法看到與之相關的任何檔案。

information_schema資料庫表說明:

•schemata表:提供了當前mysql例項中所有資料庫的資訊。是show databases的結果取之此表。

•tables表:提供了關於資料庫中的表的資訊(包括檢視)。詳細表述了某個表屬於哪個schema,表型別,表引擎,建立時間等資訊。是show tables from schema.name的結果取之此表。

•columns表:提供了表中的列資訊。詳細表述了某張表的所有列以及每個列的資訊。是show columns from schemaname.tablename的結果取之此表。

###0x08 盲注

只需從ascii碼的1遍歷到127即可知道第一位的字元,然後再令substr(a,2,1)或者mid(a,2,1),來獲取第二位。

爆破就可以用常見burp的intruder進行爆破

初學sql注入

2018 10 14 斷斷續續的學習web安全已經半個月了,寫這個部落格的目的就是為了見證自己的成長吧,因為初學,可能有錯誤或不足,望包涵。單引號必須成對出現,否則資料庫就會報錯。如果兩個單引號之間內容為空,資料庫自動忽略。union查詢列數必須相同,資料型別必須相容。空格或者 1.load fil...

初學手工SQL注入常用方法與函式

sql注入 union query sql injection 可聯合查詢注入 error based sql injection 報錯型注入 boolean based blind sql injection 布林型注入 time based blind sql injection 基於時間延遲注...

SQL注入(三) sql注入 bugku

原理 mysql 在使用 gbk 編碼的時候,會認為兩個字元為乙個漢字,例如 aa 5c 就是乙個 漢字 前乙個 ascii碼大於 128 才能到漢字的範圍 我們在過濾 的時候,往往利用的思 路是將 轉換為 換的函式或者思路會在每一關遇到的時候介紹 因此我們在此想辦法將 前面新增的 除掉,一般有兩種...