快轉到主要內容

No Hack No CTF 2024

·
CTF
貝坦betan
作者
貝坦betan
其實作者也只會是我啦哈哈

前言
#

本次排名 50/287 解出好多題題

解出
#

Crypto / AES?
#

解密網址: https://www.devglan.com/online-tools/aes-encryption-decryption
flag: 忘記記ㄌ

Crypto / Secret ROT13
#

+ offset改成- offset就可以了

def encrypt(text, key):
    encrypted_text = ""
    for i, char in enumerate(text):
        offset = ((i + 1 + key) * (i + 1)) % 26 

        if 'A' <= char <= 'Z':
            new_char = chr((ord(char) - ord('A') + offset) % 26 + ord('A'))
        elif 'a' <= char <= 'z':
            new_char = chr((ord(char) - ord('a') + offset) % 26 + ord('a'))
        else:
            new_char = char 
        encrypted_text += new_char
    return encrypted_text
# 測試範例
key = 7
plaintext = "NHNC{Y0[_kT0w_H0]_tU_decXypZe}"
ciphertext = encrypt(plaintext, key)
print("加密後的密文:", ciphertext)

ans = "VZRU{Y0k_yd0w_Z0o_ti_rsslyxli}"
def decrypt(text, key):
    encrypted_text = ""
    for i, char in enumerate(text):
        offset = ((i + 1 + key) * (i + 1)) % 26 
        if 'A' <= char <= 'Z':
            new_char = chr((ord(char) - ord('A')  - offset) %26 + ord('A'))
        elif 'a' <= char <= 'z':
            new_char = chr((ord(char) - ord('a') - offset) %26 + ord('a'))
        else:
            new_char = char 
        encrypted_text += new_char
    return encrypted_text
ciphertext = decrypt(ans, key)
print("解密後的密文:", ciphertext)    

flag: NHNC{Y0u_kn0w_H0w_to_decrypte}

Crypto / Ande Yo Caliente
#

透過ChaCha20加密,其實我根本不會解
但餵給GPT後他就直接幫我生出exp.py
請勿模仿 最壞示範 點我看對話紀錄

from binascii import unhexlify

# Provided data
iv = unhexlify("635b52504ab86d67d780dede")
encrypted_message = unhexlify("eab3ee7a3821847b76558eb61ec26f4fc7f72f436966ab7680d652b872c85c0bae4879db0748b02dde7df7ca34288a0fa21bd8889c57d3ff986a9566f09733cfbc6e")
encrypted_flag = unhexlify("f393c557632f836f226c828c1e87634489fa2e7d7b38e477b0d14dfa66")

# Known plaintext
message = b"When you feel my heat, look into my eyes\nIt's where my demons hide"

# Recover the keystream
keystream = bytes([m ^ e for m, e in zip(message, encrypted_message)])

# Decrypt the flag
flag = bytes([f ^ k for f, k in zip(encrypted_flag, keystream)])
print(f"Recovered FLAG: {flag.decode()}")

flag: NHNC{what_i_learned_from_htb}

Misc / Where is this
#

google找排骨酥麵跟河堤上的貓
flag: NHNC{24.803_120.979}

Misc / Blog2
#

點到推薦vt那邊的留言,可以看到管理員的留言,點進去後可以看到個人檔案
裡面有個不要點進來 所以我們點進去就有flag了 flag: NHNC{comments_disqusjs}

Web / 哥布林保衞部公告
#

F12打開就能看到被註釋掉的flag了
也能右鍵點開 檢視網頁原始碼 查看
flag: NHNC{BeCareful!}

Web / EASY METHOD
#

透過標題還有點進去都有特別提及HTTP Method,就是GET、POST那些的
使用burp suite攔截封包然後送到repeater,開始改HTTP Method
找了一下發現有OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT這幾種
最後改成PUT就有flag了
也能用curl來改啦 但我不會 ㄏ
flag: NHNC{Y0u_kn0w_H0w_t0_us3_CURL}

Web / I need to get the C00kies
#

F12把自己的cookie值改成admin
flag: NHNC{You_Kn0w_H0w_t0_chang3_th3_c00ki3}

Web / Login
#

SQLI
Username填admin' OR 1=1 ;--
Password隨便寫就可以了 因為上面已經將後續都註釋掉了
flag: NHNC{S1mp|e_-_SQL!}

Web / 1 line php
#

透過%0A能夠在bash中換行,於是後面就可以開始command injection了
接著發動通靈能力,cd 到根目錄(/)看到 flag- ,接著輸出該檔案就可以ㄌ
payload: cmd=%0Acd%20/%20;cat%20flag-
flag: NHNC{enter_is_always_the_best}

Reverse / easyyyyyyyyyy
#

不知道為甚麼我直接執行會失敗
但總之把他丟到ida後就會發現有個function叫flag(void)
點進去就有了
flag: NHNC{this_is_a_easy_one}

Reverse / Guess the num
#

一開始直接透過ida去把猜數字最後比較的部分從jnz改成jz
結果發現最後輸出的flag是假的qq
實際去查看了一下每個function後,發現其中sub_1217很可疑,有調用到flag,看起來疑似是在作解密之類的?
接著透過gdb直接跳到該function,由於這題的base address不是常見的0x400000,因此這邊要先下vmmap來看一下base address
查看後發現是0x0000555555554000,那再來就先在目標function下一個bp然後跳到那邊ni逐步執行就可以了

b *(0x0000555555554000+0x1217)
jump *(0x0000555555554000+0x1217)

flag: NHNC{traced_down_to_dtor}

Pwn / Grading system
#

觀察原代碼可以發現這題存在陣列溢出問題
其實我也不知道是不是叫這個名子 好像不是 但隨便
總之由於他沒有限制我們對於陣列查找的範圍
因此我們能透過輸入超出陣列大小的值,來leak出其他值
然後這題還很貼心的把admin初始化為1234,而且還提供了快速dump陣列值的功能
我們剛開始學生數量任意輸入,接著透過Dump功能來查找1234的值位於陣列何處
最後再透過修改該值為1,即可透過輸入S來getshell
flag: NHNC{i_dont_think_you_are_a_teacher}

Forensics / MagicButton
#

下載下來後點按鈕就會噴flag了
flag: NHNC{This_is_real_vuln}

Forensics / Kohiro
#

圖片很明顯是被裁切過,因此這邊要來改變圖片的高度
透過hex編輯器(我是用010editor)找到其中控制寬高的部分
可以透過先將當前圖片的長度/高度轉成hex的形式,再拿去裡面搜尋相同的值
搜尋後可以發現是在其中的00A0,3~6為高、寬的長度
這邊把高的長度加長一點就有flag了
矮額

alt text

flag: NHNC{you_can_edit_hex_00A0_04}

Forensics / Suspicious GIF
#

把gif逐禎分解後就有flag了

convert sus.gif flag.png

flag: NHNC{FrAmE_bY_fRaMe}

Forensics / BotNet1
#

進去 查詢網址後,查看Internal Transactions

flag: NHNC{0x3e9e0e9cee22Ccd0ac94604A72394B0A1CCdb27A}

未解出
#

Forensics / MagicButton
#

Forensics / BotNet2
#

Crypto / Baby RSA
#

Web / Miday
#

Web / Democracy
#

Reverse / Here’s the sauce
#

Reverse / Kid game
#

Reverse / Yet Another password checker
#

PWN / DOF
#

PWN / Filtered
#

總結
#

這次解到滿躁的 感覺很多都差一點 然後有些題目很幹( 耶繼續努力 plus ultra