2020.09.21
經驗教訓
- rot13,凱撒密碼的一種變形,因為其加密和解密只用一種方法,所以比較流行,實質就是字母表偏移13位
- 正則表達式可以用數組繞過;
- 當一個字符被過濾了的時候,有可能是因為觸發了正則表達式;
- 什么時候可以考慮用數組繞過過濾?我們的輸入被放在一個參數中被源碼處理,可能存在正則、hash處理;
- 在遇到一個不是單詞的連串字母的時候,不符合base特征的可能是凱撒處理過……
- 學到大佬的思路
既然沒有提示,也沒有其他的鏈接,那么可能有以下幾種可能:
1、敏感文件泄漏
2、跳轉
3、cookie / session
第一個想法在經過掃描器掃描之后就放棄了,因為只看到index.php,還有/upload/,但是在訪問的時候是403
第二個在抓包的時候也沒有看到有跳轉
只剩下第三個
who are you?
https://www.ichunqiu.com/battalion

- 直接訪問,顯示權限不夠,估計就是改改
X-Forwarded-For: 127.0.0.1

- 在burp中重發,發現有個特別的地方,就是設置了cookie,base64解碼后是
f:5:"thrfg";,是序列化之后的結果,role是角色的意思,那么改成admin??

- 改了X-Forwarded-For,但是沒有用,那還有啥,試試更改cookie
- 我把cookie變成admin序列化之后的結果還是不行

- 原來是這樣,怪不得之前的thrfg怪怪的,這是Rot13后的結果,我的思路是沒問題的(😬hhhh強行沒問題),thrfg解密后是guest

- 那么admin,Rot13結果是
nqzva,序列化然后base64是Zjo1OiJucXp2YSI7,再試試

- 很好,成功

<body>
<!-- $filename = $_POST['filename']; $data = $_POST['data']; -->Hello admin, now you can upload something you are easy to forget.</body>
- 那么他的意思就是我可上傳東西了,burp試試,我不太清楚這個data應該怎么填,管他呢,隨便試試😑上傳一句話被no了,那么是因為后綴名么

- 把data內容修改后成功上傳,看來是對文件內容進行了過濾

- 接下來測試被過濾的字符
<,報錯……>,沒事php,沒事?,沒事- 那看來就是對這個<進行了過濾,那么我們有沒有其他辦法呢,這一個字母也不能復寫啊
- 然后我就去看wp了,有大佬說是可能有正則表達式,可以用數組來繞過,然后就讓data[],確實成功了

- 訪問了直接給了flag
flag{e07cd440-8eed-11e7-997d-7efc09eb6c59}

- 但是思路是很重要的,怎么猜到的可以用數組繞過很重要
