대회를 늦게시작하여 이미 점수가 많이 떨어진상태...
하지만
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/
참고하여 wasm을 디컴파일 시도했다.
c언어로 작성된 코드를 분석하였다
위 사진의 분석결과를 얻을 수 있었다.
굉장히 쉬워보이지만 wasm을 디컴파일하고 코드를 분석하는데 꽤나 걸렸다...
'CTF' 카테고리의 다른 글
CCE 2021 대회 후기 (0) | 2021.09.26 |
---|---|
FoobarCTF 2021 reversing Write-up (Z3) (0) | 2021.04.05 |
justCTF2020] debug_me_if_you_can ( LD_PRELOAD 후킹, ptrace ) (0) | 2021.02.01 |
Google Capture The Flag 2020] Basics (Verilog) (0) | 2021.01.18 |