본문 바로가기

CTF

(51)
[Codegate 2018] Welcome to droid 해당 파일 다운받아보면 apk 파일 하나가 나오는데 설치 도중 패키지가 손상되었다고 나온다. 왜 오류가 나는지 도저히 모르겠어서 대회당일날은 포기했는데 write up 에서 android:testOnly="true" 때문에 설치가 안된거라고 보고 바로 문제 잡고 풀기 시작했다. 먼저 apktool로 해당 apk파일을 분리하고 xml 파일을 수정해줘야 한다.java -jar apktool_2.3.1.jar d droid.apk분리 해줬으면 droid 폴더가 생성되고 안에 xml 파일이 있는데 소스는 아래와 같다. 123456789101112131415 Colored by Color Scriptercs이 부분에서 많이 고생했는데 일단 android:testOnly="true" 을 false로 수정하면 설치는..
[Nuit Du Hack 2017] Matriochka Step 2 보호되어 있는 글입니다.
[Nuit Du Hack 2017] Matriochka Step 1 [Solve] 123456789101112131415a = 'Tr4laLa!!!'arr = []for i in a: arr.append(i) for i in range(5): tmp = arr[i] arr[i] = arr[9 - i] arr[9 - i] = tmp flag = ''for i in arr: flag += i print flag #!!!aLal4rTcs
[Tokyo Westerns 2017] Rev Rev Rev [Tokyo Westerns 2017] Rev Rev Rev첫번째 함수에서는 fgets로 받은 문자열의 enter값을 지워준다. 두번째 함수에서는 입력한 문자열을 거꾸로 뒤집어 저장한다.세번째 함수에서는 뒤집은 문자열을 암호화한다.네번째 함수에서는 각 암호화된 문자열에 비트연산 ~을 해주고 저장시킨 후 해당 값이 s2와 같다면 성공문을 출력시킨다. [Solve]123456789101112131415161718192021222324#include "stdafx.h"#include int main(){ int a[31] = { 0x41, 0x29, 0xD9, 0x65, 0xA1, 0xF1, 0xE1, 0xC9, 0x19, 0x09, 0x93, 0x13, 0xA1, 0x09, 0xB9, 0x49, 0xB9, ..
[Samsung CTF 2017] Easyhaskell Samsung CTF 2017 Easyhaskell reversing 200pt 해당문제를 IDA로 보았는데 어.. C로 만들어진 바이너리가 아님을 깨달았다. 일단 실행시켜보면서 곰곰히 보는데 인자값으로 해당 암호화 값이 변하진 않고 해당 문제의 이름으로 암호화 값이 만들어지는 것 같다.혹시 몰라 a 와 aa의 이름으로 바꿔 값을 확인해봤는데 이건 누가봐도 base64다. 패딩값으로 5를 쓰는데 브루트포스로 테이블을 구해 답을 구할 수 있지만 나는 그냥 브루트포스 했다. [Solve]1234567891011121314151617181920212223from os import *import subprocess def solve(flag, index): for bf in bf_table: name = fla..
[Codegate 2018] BaskinRobins31 보호되어 있는 글입니다.
[Codegate 2018] easy_serial Codegate 2018 easy_serial reversing 924pt IDA로 보면 이런식으로 되게 복잡하게 생겼는데; C로 만들어진 바이너리가 아닌 것 같았다. 전에 삼성 CTF에서 IDA로 본 바이너리중에 비슷하게 복잡한 구조가 있었는데 해당 바이너리가 하스켈로 만들어졌었다.하스켈로 컴파일된 바이너리인 걸 알고 바로 디컴파일을 시도하였다.haskell decompiler (hsdecomp)디컴파일 하던 도중에 오류가 있었는데 SHGroup님의 도움으로 고칠 수 있었다. (감사합니다) [Decompile_source]123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555..
[Codegate 2018] RedVelvet Codegate 2018 RedVelvet reversing 182pt해당 문제는 64bit ELF 파일이다. 먼저 IDA로 열고 분석하였다. func1~15 함수에서 입력문을 비교하는데 z3아니면 angr 쓰라는 말 같다. [z3 solve]12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091from z3 import * s = Solver()f = [BitVec("flag[%d]"%i, 16) for i in range(26)] for i in r..