전체 208

codegate 2016 / cryptinthe3sh3ll (프로그램 리소스 사용, [FindResource-SizeofResource-LoadResource-LockResource])

ref : 규태햄 write up 다른길을 찾기 위해 코게 리버싱문제부터 하나씩 풀어보도록 한다. 링크 하나와 두 개의 파일이 주어진다. 링크는 youtube 영상으로 링크가 되어 있는데 제목은 Ghost in the Shell: The New Movie Trailer이며 일본 애니메이션인 공각 기동대의 영화 애니메이션 트레일러 영상 같았다. 파일은 AppJailLauncher.exe와 ProcHollow1.exe로 구성되어 있다. AppJailLauncher는 소켓 4444를 열어, 매개변수로 오는 프로그램을 외부와 접속을 시킬 수 있도록 한다. ProcHollow1보다는 AppJailLauncher에 flag가 있을 듯 하였으나 먼저 Proc부터 분석 해 보기로 한다. [ 실행 화면 ] ProcHol..

CTF | wargame 2017.03.16

insomnihack 16 - cryptoquizz - crypto (구글 검색 파싱)

keyword : 구글 검색 파싱 소켓 연결을 하면 "What is the birth year of (암호학자 이름)?" 이런 메시지가 온다. 이에 응답으로 해당 암호학자의 태어난 년도를 보내주면 된다. 파싱 소스코드를 작성하면 되는 문제인데, 여기서 문제점은 상대가 보낼 암호학자의 전체를 알지 못하기 때문에 검색 파싱을 통해 데이터 수집을 해야 한다. 처음에는 위키 백과를 기준으로 하려 하였으나, 위키 백과에서도 나타나지 않는 암호학자의 이름이 존재하다. 다음으로 구글 검색을 하면 구글 메인에서 보여주는 인물의 기본 정보를 가지고 데이터를 수집하려하고 하였다. 그런데 검색을 직접 해 보니 잘 나오지 않아서 고민을 하고 있었는데, 미국 구글로 검색을 하니 제대로 나오는 경우가 생겼다. 위 그림의 경우 미..

CTF | wargame 2017.03.11

Alexctf / usb probing (usb 패킷 분석

keyword : usb 패킷 분석 One of our agents managed to sniff important piece of data transferred transmitted via USB, he told us that this pcap file contains all what we need to recover the data can you find it ? USB패킷 분석이 최근 문제에서 조금씩 나오는 것 같다. 패킷이라 해도 어찌되었건 USB 데이터 전송에 관해서 알아야 하기 때문에 다음 문서를 참고하면 도움이 될 것 같다. http://www.eastsky.co.kr/?module=file&act=procFileDownload&file_srl=4171&sid=82ce876b7f1882d71..

CTF | wargame 2017.03.11

Bits CTF / flagception (숨겨진 단서 찾기, 바이트 코드 변환)

date : `17.02 Yo dawg, I heard you like flags So I put a flag in your flag Flag format: BITSCTF{a1phanum3r1c_w0rds} 대회의 메인 로고에서 답을 얻어야 하는 문제이다. 깃발 부분을 보면 특정 위치만 색이 다르다. 한 줄을 하나의 바이트 크기로 보고 보면 아스키 코드 범위 내이며, flag를 얻을 수 있다. 위 그림에서 그 부분만 추출 했다는 가정 하에 사용된 소스코드이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 from PIL import Image img = Image.open('data.png') img = img.convert('RGB') width = ..

CTF | wargame 2017.03.11

Alexctf / unVM me (파이썬 디컴파일 uncompyle, md5 해쉬데이터 조회)

date : `17.02 If I tell you what version of python I used .. where is the fun in that? pyc파일 하나가 주어진다. pyc는 파이썬 소스코드의 컴파일 버전이며 소스코드를 바로 볼 수 없다. 하지만 간단하게 디컴파일이 가능하다. 이전에 pox암호문제를 풀 때 사용했던 uncompyle2를 사용하였다. http://nopdata.tistory.com/198 uncompyle2를 파이썬 콘솔 내에서 사용하는 방법으로 사용하였다. (일반 커맨드 사용도 가능하다. 1 2 3 4 5 from uncompyle2 import uncompyle_file f = open('unvm_me.py','wb') uncompyle_file('unvm_me.pyc..

CTF | wargame 2017.03.11

Alexctf / math bot (반복 소켓 연산)

date : `17.02 It is well known that computers can do tedious math faster than human. 그냥 수학문제가 엄청 많이 반복되는 서버가 있다. 수학문제는 단순 연산으로 그냥 소켓 연결 소스코드를 작성하면 된다. 보통 소켓 문제를 풀 때 socket 모듈을 사용하였는데 오가는 정보는 볼 필요가 없으나 진행 정도는 보고 싶은 경우가 많았다. bring weakness 문제를 보니 이를 간단히 pwntool을 이용할 수 있을 것 같아서 소스코드를 약간 변형해서 작성을 해 보았다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 from pwn import * sock = remote('195.154.53.62',1337) i = 0 p..

CTF | wargame 2017.03.11

Alexctf / What is this encryption? (고전 rsa 복호화)

date : `17.02 Fady assumed this time that you will be so n00b to tell what encryption he is using he send the following note to his friend in plain sight : rsa 알고리즘을 통해 암호화 된 데이터를 복호화 해야 하는 문제이다. 제공되는 파일의 내용은 다음과 같이 구성되어 있다. p=0xa6055ec186de51800ddd6fcbf0192384ff42d707a55f57af4fcfb0d1dc7bd97055e8275cd4b78ec63c5d592f567c66393a061324aa2e6a8d8fc2a910cbee1ed9 q=0xfa0f9463ea0a93b929c099320d31c277e0b0..

CTF | wargame 2017.03.11

Alexctf / poor rsa (공개키를 이용한 rsa 개인키 복호화)

date : `17.02 This time Fady decided to go for modern cryptography implementations, He is fascinated with choosing his own prime numbers, so he picked up RSA once more. Yet he was unlucky again! 이전과 같은 rsa 암호 문제이지만 제공되는 p, q값이 없으며, 공개키 e만 주어졌다. 문제는 숫자값으로 주어진 것이 아닌 키 형태로 주어졌기 때문에 이를 다시 숫자화 시켜야 한다. 이는 다음 명령으로 할 수 있다. openssl rsa -text -inform PEM -in key.pub -pubin -modulus text : key의 modulos, ex..

CTF | wargame 2017.03.11

codegate 2017 / RamG-thunder (우회 리버싱)

PE파일 하나가 주어진다 실행하면 아래와 같은 메뉴가 나온다. [ 실행 화면 ] 실행을 시키면 0 ~ 3까지 메뉴가 출력되는데 그 이외에 4를 입력하면 히든 메뉴로 넘어갈 수 있고, 히든메뉴의 let's play hidden flag search game!을 선택하면 5개의 스테이지를 우회하라는 메시지가 나온다. 1, 5번 스테이지는 key를 입력받고, 2,3,4번 스테이지는 자동으로 넘어가게 되어 있다. stage1이 시작되면 프로그램 내에 저장되어있던 데이터를 로드한다 이 데이터는 마지막에 파일로 추출이 된다. stage1의 key값은 input 값의 연산을 걸친 결과가 MVYLXYVA..가 되어야 한다. 앞에서 5자리만 맞추면 되기 때문에 MVYLX만 추면 되며 연산은 MVYLX ymaya이므로 y..

CTF | wargame 2017.03.10

nullcon17 / Programming Question 1 (픽셀 데이터 -> png 변환)

txt파일이 주어진다. 파일안에는 (255,255,255)... 이런 식을 픽셀 값이 저장되어 있는 텍스트가 주어진다. 시작부분을 보면 친절하게 [ ]로 묶여있다. 파이썬에서 바로 리스트 형태로 만들어 놓고 png로 변환하라는 의미로 알고 PIL을 이용해서 이미지를 만들었다. 문제는 만들기 위해서는 배경판의 가로 세로 크기를 정해야 하는데 이는 주어진 텍스트 데이터 픽셀의 크기를 보고 알 수 있다. 총 528601이므로 %연산자로 나누어서 떨어지는 569*929가 된다. 가로 길이는 929, 세로길이는 569로 해 주어야 한다. 사용한 소스코드는 다음과 같다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 from PIL import Image import os data = eva..

CTF | wargame 2017.03.10