sqli labs學習sql注入

2021-10-03 05:31:16 字數 2377 閱讀 6299

在sql注入時應該記住的一些東西

information_schema庫存放了所有庫的資訊

information_schema.columns包含了所有表的字段

table_name表名

table_schema資料庫名

column_name列名

information_schema.tables包含所有庫的表名

group_concat()函式能將相同的行組合起來,省老事了。

聯合查詢注入的原理

聯合查詢注入的前提就是要有顯示位(通過查詢從資料庫返回到頁面的內容)。

因本人為萌新一枚,在這裡就以sqli-labs(一)為例子進行說明。

開啟**,進入lesson 1

1、判斷注入點

閉合符號一般是』、"、』)、")或者沒有閉合符號,而注釋符號一般是 --+

在搜尋框內輸入?id=1』,發現提示錯誤。

用注釋符號–+注釋後發現正常

說明注入點是單引號』

2、判斷列數

在輸入框內輸入id=1,2,3;時,均有不同的資料返回。然後輸入

發現

說明一共有三列

3、聯合查詢開始

輸入

?id=

0' union select 1,2

,3--+

在這裡的意思是將id的值等於乙個在資料庫中不存在的數,通過聯合查詢可以看出輸入的資料會在**顯示出來。

結果顯示出了2 3的位置,所以在2 3位置我們便可以輸入我們想用的句子。

爆資料庫

爆資料庫時可以通過乙個**database()**語句來檢視當前的資料庫

爆資料表在上面說的一些語句,這裡就要用到了

既然是爆資料表,首先就需要乙個group_concat()函式加乙個資料表名table_name,然後還需要指定乙個**,而**就是所有庫的表名從上面爆出來的資料庫中

爆欄位

?id=

0' union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users' --

+

爆值

這樣,值就被爆出來了!

後續更改:

改正了之前文章編輯時的錯誤。

sql-labs

第二關:閉合符號:'

第三關閉合符號:')

第四關閉合符號:")

通過sqli labs學習SQL注入(2)

我的理解是,頁面不給出任何錯誤資訊的都屬於盲注 基於布林的盲注 通過返回的頁面是否正確來判斷,如果後台做了限制,此方法無效 例如less 9,錯誤也會顯示you are in.基於報錯的盲注 構造乙個能回顯錯誤資訊的sql語句,如果後台做了限制,此方法無效 例如less 8以及後面的幾關,錯誤資訊被...

通過sqli labs學習SQL注入(4)

這次用sqlmap來通關一次sqli labs 主要使用的引數 例項演示 目標url 選擇感興趣的資料庫,這裡選擇security 檢視指定表名的列 直接dump出users表的內容 也可以加 c username dump指定列username的內容,dump alldump所有資料庫的內容 sq...

sql注入練習 SQLi LABS 1

本篇是針對sqli labs靶場的less1 less4的sql注入練習。主要涉及報錯型注入 聯合查詢注入。第1 4關是都是error based,只不過方式不一樣,可能是通過單引號 雙引號等進行試錯。以第一關為例 輸入引數獲取使用者名稱密碼 如何通過sql注入,獲得庫,表,使用者資料等資訊?首先來...