본문 바로가기

seccon5

[SECCON - Beginners_CTF_2021] json 1. 개요 X-Forwarded-For 문제, json 파서 문제 2. 분석 bff 에서 요청을 받고, 검사를 통과하면, api 서버로 요청을 보냅니다. - bff에서 IP를 검사하고, client의 IP 가 192.168.111.X 이어야합니다. - bff 에서는 id가 1 이어야합니다. - api에서는 id가 2 이어야합니다. IP - X-Forwarded-For 헤더로 192.168.111.1로 세팅해서 검사를 통과할 수 있습니다. id - bff와 api 파일의 json 파서가 서로 다릅니다. - data = '{"id": 2, "id": 1}' 로 보낸다면, - bff의 go 표준json 파서 결과는 - id: 1 - api의 buger/jsonparser 결과는 - id: 2 - bff pac.. 2023. 5. 28.
[SECCON Beginners CTF 2022] BeginnersBof 1. 개요 Buffer over flow 문제 2. 분석 스텍프레임이 40 으로 생겼고, 40 다 채우고 이후 8바이트를 win() 함수의 주소로 채워서 main 함수 종료시점에 win() 함수가 실행되도록 합니다. #include #include #include #include #include #include #include #define BUFSIZE 0x10 void win() { char buf[0x100]; int fd = open("flag.txt", O_RDONLY); if (fd == -1) err(1, "Flag file not found...\n"); write(1, buf, read(fd, buf, sizeof(buf))); close(fd); } int main() { int len.. 2022. 6. 5.
[SECCON Beginners CTF 2022] CoughingFox 1. 개요 제곱수 검사 문제 2. 분석 그냥 거꾸로 돌리면 되겠지 싶었는데 shuffle로 순서를 바꾸어 놓았습니다. 그럼 어떻게 맞출까 생각하다가 제곱수 여부를 검사해서 넣기로 결정했습니다 from random import shuffle flag = b"ctf4b{XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX}" cipher = [] for i in range(len(flag)): f = flag[i] c = (f + i)**2 + i cipher.append(c) shuffle(cipher) print("cipher =", cipher) 3. exploit # 1. init cipher = [12147, 20481, 7073, 10408, 26615, 19066, 193.. 2022. 6. 5.
[SECCON Beginners CTF 2022] Quiz 1. 개요 문자열 검색 문제 2. 분석 main함수를 확인해보니, 퀴즈를 맞추면 flag를 출력해줍니다. 퀴즈 찾을 생각하지 말고 flag 찾습니다. 어딘가 하드코딩으로 박혀있는것 같습니다. 3. exploit ghidra 문자열 검색 사용해서 찾습니다. ctf4b{w0w_d1d_y0u_ca7ch_7h3_fl4g_1n_0n3_sh07?} 2022. 6. 5.