CTF

BambooFox CTF

wsoh9812 2021. 1. 18. 11:11

대회를 늦게시작하여 이미 점수가 많이 떨어진상태...

하지만

1인팀 치고 나쁘지 않은 결과다 ^^

 

 

Ransomware

pyc파일이 주어지는데 uncompyle6로 디컴파일 해주면 코드가 보이고, 복호화 코드를 짜주면 끝.

import requests

data = __import__('requests').get('https://ctf.bamboofox.tw/rules').text.encode()
key = data[99:115]
iv = data[153:169]

from Crypto.Cipher import AES

data = open('flag.enc','rb').read()
cipher = AES.new(key, AES.MODE_CBC, iv)
dec = cipher.decrypt(data)

with open('flag.png','wb') as f:
    f.write(dec)

print '[*]  finish !!!'

 

(lambda식을 크게 보면된다)

 

 

Flag Checker Revenge

import angr
import claripy
p = angr.Project('./flag')

flag_chars = [claripy.BVS('flag_%d' % i, 8) for i in range(43)]
flag = claripy.Concat(*flag_chars + [claripy.BVV(b'\n')])

st = p.factory.full_init_state(
            stdin=flag,
            add_options=angr.options.unicorn,
)

for k in flag_chars:
    st.solver.add(k != 0)
    st.solver.add(k != 10)

sm = p.factory.simulation_manager(st)
sm.run()

out = b''
for pp in sm.deadended:
    out = pp.posix
    if b'OK' in out.dumps(1):
        print(out.dumps(0))
        print(out.dumps(1))

angr로 쓱싹

 

 

 

The Vault

문제는 wasm파일과 js, html이 주어진다.

처음에는 크롬 계발자모드로 디버깅하여 살펴보았다. 몇번의 삽질을 해보았지만 해결하지 못하였다.

이후 

www.hahwul.com/2018/10/06/hacking-security-analysis-web-assembly/

 

Hacking & Security Analysis Web Assembly(웹 어셈블리 해킹/보안분석)

Security engineer, Developer and H4cker

www.hahwul.com

참고하여 wasm을 디컴파일 시도했다.

 

c언어로 작성된 코드를 분석하였다

 

위 사진의 분석결과를 얻을 수 있었다.

 

 

굉장히 쉬워보이지만 wasm을 디컴파일하고 코드를 분석하는데 꽤나 걸렸다...