標籤:hack 資料 open 源碼 十分 err ref 比賽 連結
比賽平台關閉了,沒有,見諒。 解題思路流程:分析網站結構,看源碼,元素審計。發現以下資訊。
- 要得到flag要獲得一個pro cdn
- pro 子網域名稱長度為3到6個字元
- 存在一個提交ticke頁面
那怎麼擷取一個pro cdn呢?想到以下幾種方法。
- 直接申請一個pro cdn
- 能不能把一個basic提升為pro
- 登入admin的帳號,看裡面是否有pro cdn
無從申請。設計pro的操作時都提示不允許。嘗試注入,弱密碼無效。這些弄完了之後,思路卡殼,回到提交ticket那裡。十分肯定最後flag是ticket這裡出來。有長度在ticket頁面嘗試了一波爆破,可是無效,最多同時6個open。用子網域名稱爆破工具還有google hack 都沒能得到有用的。這題自己做到這裡,實現想不出來還有什麼了。看writeup發現是知識盲區,學習一波。 知識點主要來自烏雲的這篇文章:http://www.cnblogs.com/deen-/p/6919326.html參考writeup:http://lorexxar.cn/2017/05/23/rctf2017/ http://www.math1as.com/index.php/archives/479/?utm_source=tuicool&utm_medium=referral看完文章後在回到題目。最後正確的解題流程是:
- 不斷申請basic,會產生隨機的八個長度的子網域名稱。申請的這些子網域名稱會存在伺服器背景資料庫裡面。
- 對子網域名稱的字元進行判斷,看是否包含有那些unicode,兩組以上,包含一組長度為7,兩組為6。不包含則刪除basic。這裡要一個指令碼爆破。
? : dz //valid domain ext
? : rs //valid domain ext
№ : no //valid domain ext
? : sm //valid domain ext
℡ : tel //valid domain ext
? : tm //valid domain ext
? : na // valid domain ext
U+3377 : dm //valid domain ext
? : ma // valid domain ext
? : nf //valid domain ext
? : ml //valid domain ext
? : fm //valid domain ext
㎝ : cm //valid domain ext
? : ps //valid domain ext
? : ms //valid domain ext
? : pw //valid domain ext
? : mw //valid domain ext
㏄ : cc //valid domain ext
? : cd //valid domain ext
? : gy //valid domain ext
? : in //valid domain ext
? : ph //valid domain ext
? : pr //valid domain ext
? : sr //valid domain ext
? : fi //valid domain ext
? : st //valid domain ext
? : st //valid domain ext
- 如果發現有包含,則在ticket頁面進行提交。提交的時候,比如:
假設申請的basic子網域名稱為 23fdanapw ,這個子網域名稱裡麵包含pw ,na,提交的時候我們提交 23fd?? 。 後台會進行兩步判斷。一是判斷是否在資料庫,這兩個在後台資料庫是等價的,存在。二是後台會類比點擊這個連結,用瀏覽器去判斷,而瀏覽器對這個子網域名稱的長度判斷是6位,達到了pro長度的標準。就認為是pro,返回flag. 總結:unicode的長度編碼trick。多看多搜烏雲。
[rctf](web)rcdn 解題分析,知識點總結