1. 程式人生 > >暑期練習web23:sqli lab第五關 雙注入GET單引號字元型注入----基於bool型的手工盲注

暑期練習web23:sqli lab第五關 雙注入GET單引號字元型注入----基於bool型的手工盲注

如果所查詢的使用者id在資料庫中,可以發現頁面顯示”You are in”,而不像前4關那樣會顯示出具體的賬號密碼
這裡寫圖片描述
而如果輸入的查詢語句不存在,則什麼也不會返回
這裡寫圖片描述
這裡普及一下盲注時的常用函式
1.mid()函式

mid(striing,start,length)

string(必需)規定要返回其中一部分的字串。

start(必需)規定開始位置(起始值是 1)。

length(可選)要返回的字元數。如果省略,則 mid() 函式返回剩餘文字。

2.substr()函式

substr(string,start,length)

string(必需)規定要返回其中一部分的字串。

start(必需)規定在字串的何處開始。

length(可選)規定被返回字串的長度。

3.left()函式

left(string,length)

再怎麼解釋也不如直接開弄

string(必需)規定要返回其中一部分的字串

length(可選)規定被返回字串的前length長度的字元

4.ascii(a)將a轉換成其ASCII值
5.ord(a)將a轉換成其ASCII值

首先猜解庫名
我們這裡先用length測出資料庫的長度是8
這裡寫圖片描述
接著,利用substr函式,推測庫名的第一個字元
大於r
這裡寫圖片描述
小於t
這裡寫圖片描述
由此可推斷第一個字元是s
接下來判斷第二個字元:
http://127.0.0.1/sqlilabs/Less-5/?id=1' and left(database(),2)>'sd'%23

‘sd’<’當前資料庫名的前兩位字元’<’sf’

所以當前資料庫名的第二位字元為’e’。

以此類推,最後得到當前資料庫名為“security”

第二步當然是推表名
因為有多個表,所以我們在這一步還是需要用到limit,以便一個個推測
還是一樣,先測第一個表的長度
這裡寫圖片描述
使用上面這個payload,如果頁面返回”You are in”,則表示第一張表的長度至少為1,同樣的,我們可以對 limit num,1),num,1)) num部分進行遞增判斷,如果進行到 limit 0,1),7,1)) 時頁面返回空,則說明第一張表的長度為7-1=6

這裡呢,我們只用substr就會不方便了,因為表名只要包含到數字或者像@這樣的識別符號,用字元一個夾逼就不是很方便,所以這裡用acsii碼來比對,這樣範圍更好確定
這裡寫圖片描述


acsii碼大於100,我們找到100所對於的acsii碼得知100對應的是字元‘d’
這裡寫圖片描述
acsii碼小於102,我們找到102所對於的acsii碼得知102對應的是字元‘f’
由此我們可以確定,第一個表的第一個字元是e
由此類推,得知第一個表是emails
另外呢,可以利用count函式,查詢表數量
這裡寫圖片描述
查詢security資料庫下的表的個數
http://127.0.0.1/sqlilabs/Less-5/?id=1' and 1=(select count(table_name) from information_schema.tables where table_schema='security'%23

下一步當然就是要查列名了
還是先查詢列的數量猜解列的個數
http://127.0.0.1/sqlilabs/Less-5/?id=1' and %d=(select count(column_name) from information_schema.columns where table_name='users')%23
後一步步夾逼出列名
http://127.0.0.1/sqlilabs/Less-5/?id=1' and ascii(substr((select column_name from information_schema.columns where table_name="users" limit 4,1),1,1))>104%23
h<第五個列的第一個字元

相關推薦

暑期練習web23sqli lab 注入GET引號字元注入----基於bool手工

如果所查詢的使用者id在資料庫中,可以發現頁面顯示”You are in”,而不像前4關那樣會顯示出具體的賬號密碼 而如果輸入的查詢語句不存在,則什麼也不會返回 這裡普及一下盲注時的常用函式 1.mid()函式 mid(striing,start

sqli-labs less 1 (基於錯誤的GET引號字元注入

基礎知識: 常用url編碼:空格%20,單引號%27,雙引號%22,#號%23 mysql常用註釋符:#...  ,--空格...  ,/*...*/,--+(某些情況+可以代替空格,+瀏覽器會編碼成空格) 常用工具:火狐的hackbar concat函式:連線一個或

牛客網暑期ACM多校訓練營(場)

bject desc price line 代碼 hot describe room acm J-plan 題目描述 There are n students going to travel. And hotel has two types room:double ro

牛客網暑期ACM多校訓練營(場)H subseq(樹狀陣列)

題意 給定一個序列 a[1..n],求下標字典序第 k 小的嚴格遞增子序列 題解 考慮逐位確定,每次計算 a[i…n] 中,以a[i]這個數字為開頭的嚴格遞增子序列的個數,用樹狀陣列統計,然後1…n與k比較,小於k就減去dp[i],否則就放a[i],當然要保證a[i]大於前一個放的數;這

fast.ai 深度學習筆記第一部分

原文:Deep Learning 2: Part 1 Lesson 5 作者:Hiromi Suenaga 課程論壇 一,引言 沒有足夠的關於結構化深度學習的出版物,但它肯定出現在行業中: 結構化深度學習,作者:Kerem Turgutlu @datascience.com

牛客網暑期ACM多校訓練營(場)H. subseq 樹狀陣列

Problem H. subseq Input file: standard input Output file: standard output Time limit: 2 seconds Memory limit: 256 m

XSS闖——level5

第五關:level5 輸入語句測試 "> <script>alert('yes')</script> 觀察原始碼發現字元被替換 把部分字元換成大寫嘗試

牛客網暑期ACM多校訓練營(場)J plan【分類】

答案無非那麼幾種,要麼都用2,要麼都用3,要麼3主2補,要麼2主3補。 #include<iostream> #include<cstring> #include<c

牛客網暑期ACM多校訓練營(場)F take【線段樹】

題意:給出一條n個節點的路,從1走到n,每個點有一定概率出現一個價值為w的鑽石,如果這個鑽石比手裡的鑽石大,他就把之前的扔了選這個。求扔的期望。 分析: 每一個點的扔的概率為,之前比它大的鑽石都沒有出現的概率。 那麼我們就可以通過線段樹來維護這個概率,

牛客網暑期ACM多校訓練營(場)G max【數學】

給出一個cc,給出一個取值範圍[1,n][1,n]。在範圍中取兩個數a,ba,b使得 gcd(a,b)=cgcd(a,b)=c,最大化 a∗ba∗b。 答案相當於是c∗c∗x∗yc∗c∗x∗y 其

hihor日記hiho一下 十九周

http://hihocoder.com/contest/hiho59/problem/1 題意分析 給定一個單執行緒程式執行的記錄,包含有每個函式啟動和結束的時間。判定該份記錄是否錯誤,主要的錯誤包含: 記錄中的時間不是嚴格遞增的 一個函式的結束時間比啟動時間更早 記錄中一個函

hohor學習日記hiho一下 十八週

http://hihocoder.com/contest/hiho58/problem/1 題意分析 給定字串S,判定S是否存在子串S’滿足"aa…abb…bcc…c"的形式。其中abc為連續的三個字母,且a,b,c的數量相同。 原題目中數量相等的連續n(n>3)個字母也是

hihor學習日記hiho一下 十七週(高斯消元)

http://hihocoder.com/contest/hiho57/problem/1 高斯消元的變種,因為圖很小所以而且每一個小格子都得為1,那麼就把圖中對某個小格子有作用的點標記起來,而他們的共同作用次數為奇數的話,小格子的狀態變化,反之不變, 注意這裡在處理矩陣時,對於第

hihor學習日記hiho一下 十六週(高斯消元)

http://hihocoder.com/contest/hiho56/problem/1 高斯消元就是用多元一次方程求解 小Ho:<吧唧><吧唧><吧唧> 小Hi:小Ho,你還吃呢。想好了麼? 小Ho:腫搶著呢(正想著呢)…<吞嚥>

hihor學習日記hiho一下 週 (點的連通分量)

http://hihocoder.com/contest/hiho55/problem/1 與邊的雙聯通分量類似,這個是求的割點 虛擬碼: void dfs(int u) { //記錄dfs遍歷次序 static int counter = 0; //記錄節點u

hihor 學習日記hihor一下 十四周(縮點+dfs)

http://hihocoder.com/contest/hiho54/problem/1 這次是強連通分量 因為強連通分量是一個迴路,所以一張圖的一個強連通分量可以看成一個點, 虛擬碼: AC程式碼: #include <bits/stdc++.h> usin

hihor 學習日記hiho一下 十三週(邊的連通分量)

http://hihocoder.com/contest/hiho53/problem/1 求出邊的雙聯通分量 與求割點與割邊類似,求邊的雙聯通分量找的是橋,有m橋,那麼就有m+1的分組。 而分組有點類似割邊,如果一個分組中存在割邊那麼這個分組就不是分組,所以這張圖的割邊就是分

hihor 學習日記hiho一下 十二週 (割邊與割點)

http://hihocoder.com/contest/hiho52/problem/1 題意: 這道題就是求割邊與割點, 割邊與割點 思路: 大致就是用DFS樹來得到low,與dfn比較來判斷當前點的子樹上的點是否與當前點的父點相連,如果不聯,那麼去掉當前點

hihor 學習日記hiho一下 十一週 (尤拉圖)

http://hihocoder.com/contest/hiho51/problem/1 思路: 可以把輪盤的轉換成成一張圖,圖由 2

hihor 學習日記hiho一下 十週(尤拉路, DFS)

http://hihocoder.com/contest/hiho50/problem/1 題意: 一張圖,求每條邊經過一次走完整個圖, 思路: 因為前提已經是圖是一個尤拉圖,所以先DFS一條路徑,然後回溯是對於每個節點進行DFS,這樣就可以了 AC程式碼: #inc