close

Final CTF WriteUps

此為非正式的CTF競賽題目但其中的一些技術在往後的注入攻擊和逆向工程等都有極大的幫助。

 

  1. cryto1
    當看到題目為16進位轉換時大概就能確定此編碼為16進位而經由多種類型解碼程式後得知用ASCII解碼後即得到FLAG

FLAG{ASCII_C0DE_1S_V3RY_345Y!!!!_ed3ac988a1}

 

  1. cryto2
    此題目經過我的各種思考和測試之後發現這是二次編碼先經過base64URL編碼而成所以先URLbase64解碼(光是想就想了好久因為URL的形式通常都是%5B%64之類的而這題倒是沒有)

FLAG{Encoding_is_important_right?_a985127c81}

 

  1. crypto3
    題目是好吃的沙拉經過思考後才發現這只是個文字遊戲啊!!這串編碼是由凱薩加密而成的但位移多少不得而知所以我0~25的位移量都測不過我忘記了位移量為多少的時候顯示了FLAG

FLAG{Y0ur_F1rst_Ca35ar_C1ph4r_071e9d5a76}

 

  1. 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}

 

  1. 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}

 

  1. 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}

 

  1. reverse1
    這題單純執行就出現了(不過光是分辨0O還有i&l&1就好累喔!)

FLAG{w0w_ur_50_600d!_u_c4n_3x3cut3_3lf!_a6771acdb8}

 

  1. reverse2
    我使用gdb(peda)來看執行流程run之後一直si後會看見某一個記憶體位置內容為G{…}那麼這應該就是FLAG

FLAG{ju57_57r1n6_d0n7_pr0ud!_759d72a3f3}

 

  1. resver3
    此檔案我是用ida來返組譯的返組譯為程式碼後觀察v1char p[4]相差8byte所以前面先塞個8byte再輸入admin即可達成overflow最後FLAG就會大大地印出來了

FLAG{2018_Happy_New_Year!_0f1b0cfe3e}

 

  1. reverse4
    這題也是用ida來返組譯的觀察發現v1&v2間相差2byte可得知v1變數佔2bytev2=1634558317經過char轉換過變成了amam(因為是堆疊的關係所以是反向儲存)所以先塞2byte再輸入mama即可達成overflow

FLAG{Tamama_Is_The_Best_TA_4e25522b68}

 

  1. reverse5
    ida返組譯後觀察到v4&v5相差4bytev4的內容就藏在v4的那串數字裡(char轉換過變成了revo)v5的內容也一樣(char轉換過變成了wolf)因為都為Little Endian的關係都需反向讀取所以密碼打overflow即可得到FLAG

FLAG{Overflow_Is_A_Piece_Of_Cake_For_Me_b791ecdc72}

 

  1. web1
    curlLinux系統一個實用的工具指令ccrawl,意指把網頁抓下來這個指令就是把所指定的網頁內容抓下來進行分析剖析
    cmd輸入以下字串 curl http://ctf.tamama.pw/web1/12802f9526/index.php 即可得到FLAG

 

FLAG{0h_Y0u_4re_5o_F4st_e773499965}

 

  1. 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}

 

  1. web3
    題目為你能找到Google找不到的東西嗎我就想到是否能用 robots.txt 來找FLAG(robots.txt是一種存放於網站根目錄下的ASCII編碼的文字檔案,它通常告訴網路搜尋引擎的漫遊器,此網站中的哪些內容是不應被搜尋引擎的漫遊器取得的)在網址後面加上robots.txt即可得知FLAG

FLAG{W0w_Y0u_5m4rt3r_Th4n_G00gle_17d923d46c}

 

  1. web4
    題目為頭比身體更重要所以FLAG有可能藏在header於是我用火狐開網頁用F12檢查開發者選項發現回應檔頭裡果真的藏了一個FLAG

FLAG{He4der5_1s_54m3_1mportant_4s_B0dy_3469e1c72b}

web4-1.png

  1. web5
    題目為既能存資訊,又好吃那麼哪個地方能存資訊呢?沒錯!就是cookie!於是我用火狐開網頁用F12檢查開發者選項發現回應檔頭裡Set-Cookie的果真的藏了一個FLAG

FLAG{C00kie_1s_N0t_0nly_C4n_34t_9fcb7d9c8e}

  1. 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!}

  1. web7
    題目為你會注入?題目非常明瞭地顯示出是注入式攻擊而看一下原始碼發現都沒對特殊字元做過濾所以 1' OR '1'='1 就能輕鬆的進入網站囉~

 

FLAG{I_Trust_U_Are_Beginner_Of_SQLi_1113b97fa9}

 

  1. web8
    這次的題目為我想當管理員而這次的野心更加強大想要取得管理員的權限而通常資料的第一筆都是管理員的資訊所以我使用 1' OR '1' = '1' AND is_admin= true LIMIT 1 #' AND password= 'pass'來撈第一筆資料而取得FLAG

 

FLAG{w0w_U_Re4lly_l34rn_4_l0t_a25b69c26e}

 

  1. web9
    這題因為使用了safe_filter來過濾函數所以我使用 \' or 1# 來把前面的斜線解掉如此一來就能成功登入了

 

FLAG{U_4re_SQLi_Ma5t3r!!!!_cd7988707e}

 

  1. web10
    這次的題目為變數隨我掌握意思應該是要我們改變變數因此我利用火狐的發開者選項去修改參數 data={"username":"admin","password":"admin","users":{"admin":"admin"}} ,再去回應裡面找即可找到FLAG

 

FLAG{4lways_D0_N0t_7ru5t_U5er's_1npu7_eb8d60fd8a}

  1. web11
    這次的題目為= =(意義不明)所以我去看原始碼發現這是php弱比較漏洞這組密碼在弱比較時會被當成數字0(科學記號所以只要我們輸入的password經過md5encode後也是[0e數字]形式就可繞過例如:240610708

FLAG{Equ4l_sh0u1d_===_N0t_==_0k?=_=_d82a8fe902}

 

心得:雖然很累但是很有趣當找到旗子時更是有莫大的滿足感大家可以自己上網找一些CTF的題目來解不會的就查網路相信會收穫良多!!(但是不要拿去攻擊一些有名的網站就好~XD)

arrow
arrow
    文章標籤
    CTF 密碼學 攻擊
    全站熱搜
    創作者介紹
    創作者 ATing 的頭像
    ATing

    A Ting 的不起眼筆記

    ATing 發表在 痞客邦 留言(0) 人氣()