📔
CTF 2021
  • Hi there <3
  • CTF2021
  • CTF2021
    • Table of contents
  • CTF2021
    • ASISCTF 2021
  • CTF2021
    • CookieAreaSeason1
  • CTF2021
    • CryptoHack
  • CTF2021
    • CSAWCTF 2021
  • CTF2021
    • DamCTF 2021
  • CTF2021
    • DownUnderCTF 2021
  • CTF2021
    • GrabCon CTF 2021 - NotRSA
  • CTF2021
    • HTB
  • CTF2021
    • Imaginary CTF 2021
  • CTF2021
    • Joined PicoCTF 2021 for the first time && Some challenges were solved.
  • CTF2021
    • LIT CTF 2021
  • CTF2021
    • redpwnCTF 2021
  • CTF2021
    • TMUCTF 2021 - Common factor
  • CTF2021
    • TSGCTF 2021
  • CTF2021
    • Zh3R0 CTF+Shell CTF
Powered by GitBook
On this page
  • #Misc
  • #Forensics
  • #Crypto
  • #Misc

Was this helpful?

  1. CTF2021

Imaginary CTF 2021

PreviousCTF2021NextCTF2021

Last updated 3 years ago

Was this helpful?

Note : A JOURNEY TO GAIN KNOWLEDGE

source: idul n3mo 🐠

Giải này mình học thêm một xíu về mảng Misc và Forensics

#Misc

Spelling Test

flag: ictf{youpassedthespellingtest}

Formatting

Mình sẽ gửi dạng {people_obj.__init__.__globals__[CONFIG][KEY]} cho server

Mình không thể làm được bài này nếu thiếu sự giúp đỡ của ông hoàng Hướng Đối Tượng FuckAdapt, aligatooooooo (⸝⸝ᵕᴗᵕ⸝⸝).

#Forensics

Vacation

Chall là tìm địa điểm của hình trên dưới dạng latitude_longitude(vĩ độ, kinh độ)

flag: ictf{38.947_-119.961}

#Crypto

Rock Solid Algorithm

n = 18718668654839418101060350414897678724581774081742102287908765212690862231899547405582997157020093499506177632395430572542600019258424947803591395926472246347413986531437177801754324606200243710836609694453888894668656807471052095014376204102474311740080044776201105722801365112971807912406879483156845216746137339614577267869908065296042390812575960639865867729920434603853708907147465162697098688239587320232595412227310236678367
e = 5
c = 4061448515799106340420739691775850071489215699577921072934942485890519294380069123037340174441242842518682390853378784679825023237216051766738593812159344136064529711265570171627670665806072255545198689928996413238102114126558579154343844959868438278433954975590137693439216155482228025380904377837299357044104373966173149290333194304831238889245126840666444234215617022142380016275718234640045049962318290976661640301222078289152

Dạng RSA với e nhỏ nên ta dễ dàng brute force với flag = 5 √ (k*n + c) với k ∈ Z

from Crypto.Util.number import*

n = 18718668654839418101060350414897678724581774081742102287908765212690862231899547405582997157020093499506177632395430572542600019258424947803591395926472246347413986531437177801754324606200243710836609694453888894668656807471052095014376204102474311740080044776201105722801365112971807912406879483156845216746137339614577267869908065296042390812575960639865867729920434603853708907147465162697098688239587320232595412227310236678367
e = 5
c = 4061448515799106340420739691775850071489215699577921072934942485890519294380069123037340174441242842518682390853378784679825023237216051766738593812159344136064529711265570171627670665806072255545198689928996413238102114126558579154343844959868438278433954975590137693439216155482228025380904377837299357044104373966173149290333194304831238889245126840666444234215617022142380016275718234640045049962318290976661640301222078289152

i = 1
def find_invpow(x,n):
    high = 1
    while high ** n < x:
        high *= 2
    low = high//2
    while low < high:
        mid = (low + high) // 2
        if low < mid and mid**n < x:
            low = mid
        elif high > mid and mid**n > x:
            high = mid
        else:
            return mid
    return mid + 1
while True:
    flag = long_to_bytes(find_invpow(i*n+c,5))
    if b'ictf' in flag:
        print(flag,i)
    i+=1
#b'ictf{3_isnt_th3_0nly_sm4ll_3xp0n3nt}'

flag: ictf{3_isnt_th3_0nly_sm4ll_3xp0n3nt}

Flip Flops

về ý tưởng : đầu tiên ta phải gửi chuỗi hex cho server, server encode mọi chuỗi trừ trường hợp có cụm 'gimmeflag', bước 2 check lại nếu trong chuỗi vừa encode có cụm 'gimmeflag' server sẽ trả lại flag. Đây là mã CBC, block đầu tiên sẽ được xor với block iv, các block sau sẽ được xor với block trước nó. Ở đây ta không kiểm soát được block đầu tiên nên bỏ qua, ta gửi cụm aaaaaaaaaaaaaaaaGimmeflag , sau khi encode xong ta đổi kí tự đầu tiên là G thành g .

Ta đổi kí tự đầu tiên cho dễ, rõ hơn:

32 = ord('G') xor ord('g') ( G xor g)

ta lấy kí tự đầu tiên của chuỗi sau khi encode ở dạng hex là :

0xb7^32 ( G xor( G xor g )) = g ) ta lại thu được g chuyển lại hex và thay là xong Gimmeflag -> gimmeflag

flag: ictf{fl1p_fl0p_b1ts_fl1pped_b6731f96}

Lines

bài này ta có :

flag_enc = (s * flag)%p

msg_enc= (s * msg)%p

ta dễ dàng tìm được s bằng nghịch đảo: s = (msg^-1 * msg_enc )%p tương tự ta tìm được flag .

from Crypto.Util.number import *
import random

msg = bytes_to_long(b":roocursion:")
p = 82820875767540480278499859101602250644399117699549694231796720388646919033627
flag_enc = 26128737736971786465707543446495988011066430691718096828312365072463804029545
msg_enc = 15673067813634207159976639166112349879086089811595176161282638541391245739514

# s  = g^(ab) mod p
# flag_enc = (s * flag)%p
# msg_enc=(s * msg)%p

s = (pow(msg,-1,p) * msg_enc)%p 
print(s)
print(long_to_bytes((inverse(s,p) * flag_enc )%p))

flag: ictf{m0d_4r1th_ftw_1c963241}

#Misc

Puzzle 2

người solve: FuckAdapt

Bài này rất thú vị, chall là một game như minecraft mình có thể di chuyển mọi nơi trong này nhưng có duy nhất một cánh cửa không mở được, đương nhiên flag nằm trong đây rồi. Về ý tưởng mình phải tìm cách "mở" cửa hoặc đi xuyên qua nó :)

flag: ictf{SPY_KIDS_ASSEMBLE}

Bài Puzzle2 này do bạn của mình lớp cntt solve, trong một lần đi khịa dạo mình thách thằng bạn làm được bài này, ai ngờ bạn solve được thật :> . Do cậu í không chơi ctf nên mình để tạm ý tưởng cậu ở đây nhó babe <3 .

Thanks for reading. Have a good day ٩(๑> ₃ <)۶♥

file:

Tóm tắt: bài này cho mình một file txt có 2175 từ vựng, trong đó một số từ viết sai 1 chữ cái, mình cần tìm ra các chữ cái sai và ghép chúng lại. Đọc đến đây mình nhớ đến câu nói của vị hiền nhân nào đó "Cần lao vi tiên thủ...." . Tìm từng chữ thì chầy cối quá mình dùng thêm để hỗ trợ : D

file:

một bài code theo oop, bài này lỗi ở . String formatting functions có thể truy cập đến thuộc tính của đối tượng cũng như làm rò rỉ dữ liệu.

Tham khảo .

bài này mình được bạn j1s0o cùng team chỉ cho (🌼❛ ֊ ❛„)

Quan sát 2 vị trí trên ta có thể search với key word "city of south lake tahoe hemp company"

file:

file:

file :

ta có source game rồi, sử dụng dnspy thêm 1 dòng code này để tắt collision và cheat đi xuyên tường :)). Tham khảo .

chall
proodfread
Chall
str format vulnerability
thêm
Chall
Chall
chall
thêm