Final CTF WriteUps
此為非正式的CTF競賽題目,但其中的一些技術在往後的注入攻擊和逆向工程等都有極大的幫助。
- cryto1
當看到題目為16進位轉換時,大概就能確定此編碼為16進位,而經由多種類型解碼程式後,得知用ASCII解碼後即得到FLAG。
FLAG{ASCII_C0DE_1S_V3RY_345Y!!!!_ed3ac988a1}
- cryto2
此題目經過我的各種思考和測試之後,發現這是二次編碼,先經過base64再URL編碼而成,所以先URL再base64解碼(光是想就想了好久,因為URL的形式通常都是%5B%64之類的,而這題倒是沒有)。
FLAG{Encoding_is_important_right?_a985127c81}
- crypto3
題目是好吃的沙拉,經過思考後才發現這只是個文字遊戲啊!!這串編碼是由凱薩加密而成的,但位移多少不得而知,所以我0~25的位移量都測,不過我忘記了位移量為多少的時候顯示了FLAG。
FLAG{Y0ur_F1rst_Ca35ar_C1ph4r_071e9d5a76}
- crypto5
這題把flag跟一些東西XOR後以整數輸出,寫個c來解,因為提示有說開頭是FLAG就可以知道val1 xor的值了。
#include <stdio.h>
int main()
{
int result[] ={1298965681,1376627084,1208859320,1482862807,1326295511,1181531558,2003617956};
char flag[29];
flag[0] = 'F';
flag[1] = 'L';
flag[2] = 'A';
flag[3] = 'G';
int *ptr;
ptr = (int*)flag;
int key = result[0] ^ ptr[0];
int i ;
for(i = 1, ptr = (int*)flag ; i < 7 ; ++i)
ptr[i] = key ^ result[i];
flag[28] = '\0';
printf("%s\n",flag);
return;
}
FLAG{A XOR B XOR A EQUALS A_eba161b6b8}
- msic1
這檔案解壓縮後特別的大,而這文件裡有一大堆的FLAG{THIS_IS_NOT_FLAG}
,所以我用以下這程式來過濾FLAG。
f = open('flag.txt','r')
for line in f:
if line!='FLAG{THIS_IS_NOT_FLAG}\n':
print(line)
FLAG{Compress_is_Amazing!!_0c4989290a}
- misc2
當題目為眼前的黑不是黑你說的白是什麼白時,我想FLAG就可能藏在白色背景裡,所以我使用這網站(https://ctf-wiki.github.io/ctf-wiki/misc/picture/png.html#stepic)中的Stegsolve濾鏡程式,當把整張圖慮成藍或綠色時,FLAG就清清楚楚地顯示出來了。
FLAG{U_See_White_But_it_Does_Not_16af50e517}
- reverse1
這題單純執行就出現了。(不過光是分辨0跟O還有i&l&1就好累喔!)
FLAG{w0w_ur_50_600d!_u_c4n_3x3cut3_3lf!_a6771acdb8}
- reverse2
我使用gdb(peda)來看執行流程,run之後一直si後會看見某一個記憶體位置內容為G{…},那麼這應該就是FLAG了。
FLAG{ju57_57r1n6_d0n7_pr0ud!_759d72a3f3}
- resver3
此檔案我是用ida來返組譯的,返組譯為程式碼後觀察v1和char p[4]相差8個byte,所以前面先塞個8個byte再輸入admin即可達成overflow,最後FLAG就會大大地印出來了。
FLAG{2018_Happy_New_Year!_0f1b0cfe3e}
- reverse4
這題也是用ida來返組譯的,觀察發現v1&v2間相差2個byte,可得知v1變數佔2個byte,而v2=1634558317經過char轉換過變成了amam(因為是堆疊的關係,所以是反向儲存),所以先塞2個byte再輸入mama即可達成overflow。
FLAG{Tamama_Is_The_Best_TA_4e25522b68}
- reverse5
經ida返組譯後觀察到v4&v5相差4個byte,而v4的內容就藏在v4的那串數字裡(經char轉換過變成了revo),而v5的內容也一樣(經char轉換過變成了wolf),因為都為Little Endian的關係都需反向讀取,所以密碼打overflow即可得到FLAG。
FLAG{Overflow_Is_A_Piece_Of_Cake_For_Me_b791ecdc72}
- web1
curl是Linux系統一個實用的工具指令,c指crawl,意指把網頁抓下來,這個指令就是把所指定的網頁內容抓下來進行分析剖析。
在cmd輸入以下字串curl http://ctf.tamama.pw/web1/12802f9526/index.php
即可得到FLAG。
FLAG{0h_Y0u_4re_5o_F4st_e773499965}
- web2
這題只要密碼不對就會轉址,但是只要送name& password都為admin的參數過去即可繞過轉址得到FLAG。
curl "http://ctf.tamama.pw/web2/12802f9526/index.php" --data"name=admin&password=admin"
FLAG{Uns4f3_R3d1r3ct_1s_V3ry_D4nger_abede49086}
- web3
題目為你能找到Google找不到的東西嗎,我就想到是否能用 robots.txt 來找FLAG,(robots.txt是一種存放於網站根目錄下的ASCII編碼的文字檔案,它通常告訴網路搜尋引擎的漫遊器,此網站中的哪些內容是不應被搜尋引擎的漫遊器取得的),在網址後面加上robots.txt即可得知FLAG。
FLAG{W0w_Y0u_5m4rt3r_Th4n_G00gle_17d923d46c}
- web4
題目為頭比身體更重要,所以FLAG有可能藏在header裡,於是我用火狐開網頁用F12檢查開發者選項,發現回應檔頭裡果真的藏了一個FLAG。
FLAG{He4der5_1s_54m3_1mportant_4s_B0dy_3469e1c72b}
- web5
題目為既能存資訊,又好吃,那麼哪個地方能存資訊呢?沒錯!就是cookie!於是我用火狐開網頁用F12檢查開發者選項,發現回應檔頭裡Set-Cookie的果真的藏了一個FLAG。
FLAG{C00kie_1s_N0t_0nly_C4n_34t_9fcb7d9c8e}
- web6
題目為顏文字萬歲ヽ(●´∀●)ノ…很明顯的是用言文字編碼的,於是我用chrome的開發者選項去找sources反而找到了cute.js,裡面都是一大堆顏文字(???),所以我使用這網站(https://cat-in-136.github.io/2010/12/aadecode-decode-encoded-as-aaencode.html)把顏文字給翻成了JavaScript,翻完之後FLAG就出來了ヽ(●´∀●)ノ
FLAG{7h3r3_4r3_50_m4ny_3nc0d1n6!}
- web7
題目為你會注入?題目非常明瞭地顯示出是注入式攻擊,而看一下原始碼發現都沒對特殊字元做過濾,所以1' OR '1'='1
就能輕鬆的進入網站囉~
FLAG{I_Trust_U_Are_Beginner_Of_SQLi_1113b97fa9}
- web8
這次的題目為我想當管理員,而這次的野心更加強大想要取得管理員的權限,而通常資料的第一筆都是管理員的資訊,所以我使用1' OR '1' = '1' AND
is_admin= true LIMIT 1 #' AND
password= 'pass'
來撈第一筆資料而取得FLAG。
FLAG{w0w_U_Re4lly_l34rn_4_l0t_a25b69c26e}
- web9
這題因為使用了safe_filter來過濾函數,所以我使用\' or 1#
來把前面的斜線解掉,如此一來就能成功登入了。
FLAG{U_4re_SQLi_Ma5t3r!!!!_cd7988707e}
- web10
這次的題目為變數隨我掌握,意思應該是要我們改變變數,因此我利用火狐的發開者選項去修改參數data={"username":"admin","password":"admin","users":{"admin":"admin"}}
,再去回應裡面找即可找到FLAG。
FLAG{4lways_D0_N0t_7ru5t_U5er's_1npu7_eb8d60fd8a}
- web11
這次的題目為= =(意義不明),所以我去看原始碼,發現這是php弱比較漏洞,這組密碼在弱比較時會被當成數字0(科學記號,所以只要我們輸入的password經過md5經encode後也是[0e數字]形式就可繞過,例如:240610708。
FLAG{Equ4l_sh0u1d_===_N0t_==_0k?=_=_d82a8fe902}
心得
:
雖然很累
,
但是很有趣
,
當找到旗子時更是有莫大的滿足感
,
大家可以自己上網找一些
CTF
的題目來解
,
不會的就查網路
,
相信會收穫良多
!!(
但是不要拿去攻擊一些有名的網站就好
~XD)
留言列表