如何使用基於整數的手動SQL注入技術教學

2022-09-23 22:21:16 字數 1391 閱讀 1802

sql注入線上實驗室

1. 初學者可以使用這個**來練習自己的sql注入技術。

2. 訪問線上實驗室,【傳送門】。

第一步:對查詢語句動手

首先,訪問**位址:

接下來,我們在url位址結尾新增乙個單引號並檢視**是否存在sql注入漏洞:

此時,我們通過修改查詢語句成功接收到了資料庫返回的錯誤訊息。但是,我們卻沒有收到關於輸入資料(我們所新增的那個單引號)的錯誤提示,這也就說明我們的輸入已經成功了。現在我們就可以知道,我們所輸入的這個字串(單引號)是不會讓資料庫返回相關錯誤資訊的,接下來我們嘗試修復一下這個問題,去掉單引號:

上圖說明,我們在查詢語句中採用了基於整型的方法之後就不會在觸發錯誤了,這也就是我們所說的基於整型的sql注入方法。

第二步:查詢資料庫條目

確認了漏洞存在之後,我們就可以嘗試弄清楚這個資料庫表中到底有多少列了,這裡我們可以使用order by命令實現。我們可以不斷嘗試輸入任意值的數字來測試資料庫中有多少列。

上圖中,我輸入了數字4,我想要查詢4列,但是得到了一條錯誤提示。所以我得嘗試其他數字,試試3呢?

大家可以看到,這裡沒有返回sql錯誤。是的,就是3列!

第三步:查詢後台資料庫表和表名

接下來,我們需要獲取表路徑,這裡使用union all select:

上圖表明,union all select語句返回了表.2和3的表路徑:

上圖顯示了database() & version()命令的執行結果,並拿到了資料庫名和版本資訊。

大家可以看到,資料庫名為acuart,版本資訊為5.1.73-0ubuntu0.10.04.1。

第四步:匯出資料庫表

group_concat()函式可以從乙個group中獲取與非空值級聯的字串,這裡我們可以使用這個函式來列舉出資料庫中所有的表。除此之外,我們還可以使用information_schema來檢視關於資料庫中物件的元資料:

上圖顯示的是目標資料庫中匯出的所有表資訊,即:carts,categ,featured,guestbook,pictures,products,users。

第五步:匯出資料庫表中所有列的資料

接下來,我們匯出目標資料庫中user表的所有資料:

從上圖的結果中可以看到,這個資料庫表中包含的列條目有:uname,pass,cc,address,email,name,phone,cart。

第六步:匯出所有的使用者名稱和密碼

接下來,我們就可以匯出目標資料庫中所有的使用者名稱及密碼了:

這樣一來,我們就成功拿到了使用者名為test且密碼為test的使用者資訊了。

最後,祝大家happy hacking!

滲透測試 SQL盲注基於布林的盲注

普通sql注入和sql盲注的區別 sql盲注的思路 基於時間的盲注 通過構造真or假判斷條件的sql語句,且sql語句中根據需要聯合使用sleep 函式一同向伺服器傳送請求,觀察伺服器響應結果是否會執行所設定時間的延遲響應,以此來判斷所構造條件的真or假 若執行sleep延遲,則表示當前設定的判斷條...

CTF 基於布林的SQL盲注

ctf學習 基於布林的sql盲注 提 示 基於布林的sql盲注 描 述 sql注入 訪問題目,又是乙個web login登陸介面,根據提示可以大概猜測是乙個sql post注入題。123 當username admin時提示password error 可知使用者名為 admin 對username...

bugku基於布林的SQL盲注

解題思路 我用使用者名稱admin,密碼123456,提示密碼錯誤 我用使用者名稱admina,密碼123456,提示使用者名稱錯誤,說明使用者名稱是admin 我的字典sql盲注無法破解密碼,於是我在網上找了乙個大佬寫的pycharm指令碼 記得安裝requests庫和改url import re...