Dreamhack 14

[dreamhack] video_in_video

이 문제를 다운로드 해보면 다음과 같은 jpg 이미지가 있습니다. 한번 열어 보니, 다음과 같이 생겼습니다 Hex Fiend를 이용하여 이미지의 헥스 값을 한번 확인해보겠습니다 일단은 헤더가 FFD8FFE0~로 시작하는 것을 보니 JPG 파일은 맞긴 맞는가 보다. 그럼 JPG 파일의 푸터(FFD9)를 한번 찾아보자! 정말.. 수상한 위치에 나온다..... 왠지 뒤에는 다른 형식의 파일이 붙여진것 같은데?! 라는 기분에 헤더를 한번 검색해봤더니 이게 mp4의 ftyp-mmp4-mdat 파일의 구조인데, 이를 참고하면 우리는 ftyp-isom-moov 파일임을 알 수 있다! 즉, 영상이 숨겨져 있다는 것... 그렇다면 처음의 jpg만 따로 추출하면 어떤 사진이 나올까? 처음이랑 똑같은 이미지가 나온다......

WARGAME/forensic 2023.06.02

[dreamhack] ROT128

문제 설명 다운로드 해 보면 encfile과 rot128.py 파일이 존재합니다. 이때, rot128.py로 이미 암호화된 파일이 encfile이겟죵 ​ rot128.py를 복호화할 수 있는 코드를 짜면 되겠다! 그럼 한번 rot128.py 코드를 분석해봅시다 with open('flag.png', 'rb') as f: plain_s = f.read() 1. flag.png를 바이너리 파일로 열고 plain_s 라는 변수로 읽어옵니다 ​ plain_list = [hex(i)[2:].zfill(2).upper() for i in plain_s] 2. plain_list 리스트를 생성하고 각 바이트의 값을 16진수로 변환한 후 2자리로 맞추고 대문자로 변환하여 저장합니다. ​ enc_list = list(r..

[dreamhack] sleeping shark

역대급... 시간이 오래 걸린 문제 ㅜㅜ ​ 문제 파일을 다운 해보면 pcap라서 저는 와이어샤크로 분석을 했습니다 ​ 일단 tcp follow 해봤는데 별로.. 쓸모 있는 정보는 나오지 않았습니다 ​ ​ http follow를 했더니 흥미로운게 중간에 보입니다. ​ 보이시나요? ​ 보이시나요? ​ 이 문장이... 상당히 흥미롭습니다. SQL 인젝션으로 보이죠 ​ url decode 해보면 SELECT IF(ASCII(SUBSTRING((SELECT flag FROM s3cr3t LIMIT 1), 35, 1)) = 156, SLEEP(3), 0) 인데 이 문장의 의미는 다음과 같다: 주어진 s3cr3t 테이블에서 35번째 문자의 ASCII 코드 값이 156인지 확인하고 나서 맞으면 3초 대기하고 틀리면 ..

WARGAME/forensic 2023.05.30

[dream hack] baby-linux

참 재밌는 문제입미다 웹사이트를 실행해보면요 요렇게 생겼습니다 ​ 그럼 이제 python 파일을 한번 볼게여 ​ 이 코드를 한번 분석해 봅시다. ​ user_input = request.form.get('user_input') cmd = f'echo $({user_input})' 우선 요 부분을 보면 웹페이지에서 볼 수 있는 text 입력 칸이 user_input이라는 변수로 받게 되고 cmd라는 변수에 저장됩니다. ​ if 'flag' in cmd: return render_template('index.html', result='No!') 그리고 만약 우리가 입력한 값에 'flag'라는 철자가 들어가게 된다면 무조건 No!를 출력하도록 되어있는 걸 볼 수 있습니다. ​ try: output = subp..

WARGAME/misc 2023.05.30