WHO ARE YOU?--writeup
阿新 • • 發佈:2018-12-27
總結知識點:BASE64,ROT13
0x00
Base64
什麼是Base64?
Base64編碼原理
其用途
-
什麼是Base64?
-
Base64是一種基於64個可列印字元來表示二進位制資料的表示方法。(源於維基百科)
-
說白了就是一種用64個字元表示二進位制資料的方法。
-
-
Base編碼原理
由於 26 = 64,也就是說每6個位元為一個單元,對應某個可以列印字元。3個位元組有24個位元,對應4個Base64單元,也就是可以列印4個字元。通過使用包括 字母A-Z
、a-z
、數字0-9
,這樣共有62個字元,此外兩個可列印符號在不同的系統中而不同。若原資料的長度為3的倍數且剩下一個輸入資料則最後加兩個=
;若元資料長度只剩下一個輸入資料,則加一個=
。
-
用途
-
本次題目結合主要利用在HTTP頭部報文裡,當然也有應用於郵件等。
-
url運用這個編碼傳輸長資料
-
ROT13
ROT13是什麼?
原理
-
ROT13是什麼?
-
原理描述
0x01
知道了上面的知識,再來看這題:WHO ARE YOU
點進去發現:
這時候再來看看原始碼,發現並沒有神馬提示。按照我這個小白的理解,前端沒提示,多半是後臺,那麼考慮服務端了。於是用BP擷取資料包。
諾~看http頭
看到這行Cookie,覺得這裡大有文章,於是就試了試將role的值進行了BASE64解碼。得到了這個f:5:"thrfg";
這個什麼意思啊?也是思路停了好久,才知道這玩意可能是ROT13,好吧,線上解碼
s:5:"guest";
得到了這個。那麼試試改成admin
;再逆轉編碼,這時候就得到了f:5:"nqzvag";
再BASE64編碼一次更改cookie值就可以得到原始碼提示了。
構造Payload
filename=1.php&data[]='123'
之後就得到flag檔案了。