1. 程式人生 > >WHO ARE YOU?--writeup

WHO ARE YOU?--writeup

TIPS:廣東強網杯線上題

總結知識點:BASE64,ROT13

0x00

Base64

 

  • 什麼是Base64?

  • Base64編碼原理

  • 其用途

 

  • 什麼是Base64?

    • Base64是一種基於64個可列印字元來表示二進位制資料的表示方法。(源於維基百科)

    • 說白了就是一種用64個字元表示二進位制資料的方法。

  • Base編碼原理

由於 26 = 64,也就是說每6個位元為一個單元,對應某個可以列印字元。3個位元組有24個位元,對應4個Base64單元,也就是可以列印4個字元。通過使用包括

字母A-Za-z數字0-9,這樣共有62個字元,此外兩個可列印符號在不同的系統中而不同。若原資料的長度為3的倍數且剩下一個輸入資料則最後加兩個= ;若元資料長度只剩下一個輸入資料,則加一個=

  • 用途

    • 本次題目結合主要利用在HTTP頭部報文裡,當然也有應用於郵件等。

    • url運用這個編碼傳輸長資料

 

ROT13

 

  • ROT13是什麼?

  • 原理

 

  • ROT13是什麼?

  • 原理描述

    • 對任何字元x:\R_13

    • 套用ROT13到一段文字上僅僅只需要檢查字元字母順序並取代它在13位之後的對應字母,有需要超過時則重新繞回26英文字母開頭即可[2]A換成NB換成O、依此類推到M換成Z,然後序列反轉:N換成AO換成B、最後Z換成M。只有這些出現在英文字母裡頭的字元受影響;數字符號空白字元以及所有其他字元都不變。因為只有在英文字母表裡頭只有26個,並且26 = 2 × 13,ROT13函式是它自己的逆反

      :[2]

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檔案了。