반응형

사이버 424

[angstromCTF] impossible - 암호학 / Python

암호학 두번째 문제 문제를 어이없게 풀어버려서 제대로된 풀이가 아니다. 서버에 원격접속할 수 있는 주소와 서버에서 돌아가고 있는 파이썬 코드가 주어진다. #!/usr/local/bin/python def fake_psi(a, b): return [i for i in a if i in b] def zero_encoding(x, n): ret = [] for i in range(n): if (x & 1) == 0: ret.append(x | 1) x >>= 1 return ret def one_encoding(x, n): ret = [] for i in range(n): if x & 1: ret.append(x) x >>= 1 return ret print("Supply positive x and y suc..

CTF/암호학 2023.05.24

[angstromCTF] ranch - 암호학 / Python / 카이사르암호

이번 CTF 에서 암호학 1번으로 나온 문제이다. 문제 설명에서 볼 수 있듯이 Caesar 암호를 응용한 문제이다. Caesar는 '카이사르' 라고도 읽힌다. 들어본 사람도 있겠지만, 카이사르는 로마의 황제 이름이다. 카이사르는 동맹군들과 소통해기 위해서 위 그림처럼 알파벳을 몇칸 씩 뒤로 옮겨 새로운 글자로 암호문을 만들었는데 이게 바로 카이사르 암호이다. 예를들어 Apple 라는 단어가 있다면, 이것을 한칸씩 알파벳을 뒤로 옮겨서 Bqqmf 라는 암호를 만드는 것이다. import string f = open("flag.txt").read() encrypted = "" shift = int(open("secret_shift.txt").read().strip()) for i in f: if i in s..

CTF/암호학 2023.05.23

[angstromCTF] zaza - 리버싱 / IDA

간단한 리버싱 문제 제목이 ZAZA 인데 문제를 풀어보고 문제 낸 사람이 혹시 한국사람이 아닐까 생각했다. 원격으로 접속할 수 있는 주소와 바이너리 파일이 함께 주어진다. 바로 IDA라는 디스어셈블러를 이용해 열어봤다. 정의된 함수는 main, xor_, win 세 가지가 있다는 것을 알아냈다. main 함수의 수도코드를 보니 세가지 정도 검증 과정을 거친다는것을 알 수 있었다. 먼저 I'm going to sleep. Count me some sheep: 가 출력되면서 사용자 입력을 받는다. 사용자의 입력값은 v5에 저장되고, 그 값이 4919 인지 확인한다. 맞으면 다음으로 넘어간다. 다음으로 Nice, now reset it. Bet you can't: 가 출력되면서 사용자 입력을 받는다. 이번엔 ..

CTF/리버싱 2023.05.22

[angstromCTF] Simon Says - MISC / Python

간단한 코딩테스트 느낌의 MISC 문제였다. MISC는 miscellaneous의 약자로 여러가지 잡다한 이라는 의미를 가지고 있다. 문제에서는 nc 로 접속할 수 있는 원격 서버 주소가 제공된다. 접속해보니 wombat 의 앞 세글자와 dragon 의 뒤 세글자를 합한 말이 뭐냐고 한다. 뭔소린가 싶어서 일단 avc 라고 아무거나 쳐봤는데 바로 에러가 나면서 세션이 종료되었다. 다시 들어가보니 이번엔 bear 의 앞 세글자, dragon 의 뒤 세글자를 합하라고 한다. 매번 실행할 때마다 등장하는 동물이 바뀌는가 보다. 한번 쳐볼려고 be 까지쳤는데 타임아웃이 걸려있는지 세션이 종료되었다. 이번엔 pwntool 을 이용해서 파이썬으로 코딩을 해서 실행해봤다. 코드는 마지막에 첨부한다. 출력되는 문자열에..

CTF/MISC 2023.05.18

[angstromCTF] shortcircuit - 웹해킹 / Javascript

아주 간단한 웹해킹 문제이다. 문제페이지 주소만 주어진다. 문제페이지에 접속하면 이렇게 username, password 를 입력하는 칸이 있다. F12를 눌러 개발자도구를 열어 자바스크립트 코드를 보면 username 에는 admin 이 들어가야하고, password 에 들어간 값이 chunk, swap 연산을 거쳐 7e08250c4aaa9ed206fd7c9e398e2}actf{cl1ent_s1de_sucks_544e67e6317199e454f4d2bdb04d9e419ccc7f12024523398ee02fe7517fffa9251 이런 결과값이 나와야 한다. 결과값을 자세히 보면 actf{} 가 보이고, 함수 이름이 swap 인걸로 보아 뭔가 입력값을 잘라서 순서를 바꿔놓은것 처럼 보였다. 개발자도구의 ..

CTF/웹해킹 2023.05.17

[angstromCTF] directory - 웹해킹 / Dirbuster

Dirbuster 를 사용해서 풀 수 있는 간단한 웹해킹 문제이다. 문제 다 풀어놓고 보니 문제페이지를 캡쳐를 못떴다. 문제페이지에 접속하면 /1 /2 /3 /4 /5 /6 /7 /8 /9 /10 ... 이렇게 링크가 쭉 나열되어 있다. 1부터 4999 까지 있었던걸로 기억하는데 이중에 단 하나가 플래그가 적힌 페이지이다. 나머지 페이지들을 들어가면 아무것도 없다는 메세지가 나온다. 시도해볼 경우의 수가 5000개 밖에 없으니 Dirbuster 라는 도구를 사용해보기로 했다. Dirbuster 는 칼리 리눅스에 내장되어 있다. 이렇게 검색하면 바로 찾을 수 있다. Dirbuster 에서 이렇게 설정하면 된다. Target URL 을 넣어주고 Char set 는 숫자만 필요하니 0-9 로 지정해준다. 길이..

CTF/웹해킹 2023.05.16

[angstromCTF] Celeste Tunneling Association - 웹해킹 / Burp Suite

간단한 웹해킹 문제이다. 문제페이지 주소와 소스코드가 주어진다. 문제페이지에 접속하면 까만 화면에 이렇게 하얀 글씨가 써있다. 이거 외엔 별다른 기능이 없어서 소스코드를 바로 열어봤다. # run via `uvicorn app:app --port 6000` import os SECRET_SITE = b"flag.local" FLAG = os.environ['FLAG'] async def app(scope, receive, send): assert scope['type'] == 'http' headers = scope['headers'] await send({ 'type': 'http.response.start', 'status': 200, 'headers': [ [b'content-type', b'tex..

CTF/웹해킹 2023.05.15

[angstromCTF] Celeste Speedrunning Association - 웹해킹 / Python

간단한 웹해킹 문제 말 그대로 Speedrunning 해야하는 문제였다. 문제페이지에 접속하면 이런 화면이 나온다. 뭔가 순위표가 나와있는데 1등인 Old Lady 가 0 seconds 라고 나와있다. 느낌상 1등보다 빨라야 플래그를 얻을 수 있는것 같다. 안내되어있는 /play 경로로 들어가봤다. /play 로 들어가보면 Press when done! 라는 버튼이 하나 보인다. 버튼을 누르면 /submit 으로 이동하는데 이기지 못했다는 안내 문구가 나온다. /play 경로로 다시 돌아가 F12를 눌러 개발자도구를 통해 소스를 확인해봤다. 버튼을 눌렀을때 어떤 데이터가 전달되는지 봤는데 1682427392.763026 이라는 숫자가 전달되고 있었다. DCode 도구로 확인해보니 이건 현재시간을 Unix..

CTF/웹해킹 2023.05.14

[Space Heroes CTF] tarry Night - 포렌식 / HxD

beginner-friendly 난이도의 포렌식 문제이다. 그런데 생각보다 어려웠는지 풀이수가 적었다. 문제에서 주어지는 것은 tarry_night.tar.gz 파일이다. 압축을 풀어보려 했더니 뭔가 잘못됐는지 압축이 풀리지 않았다. HxD 로 바로 열어봤다. 파일의 맨 첫부분이 08 AD 37 이라고 적혀있는데 .gz 파일은 파일 시그니처가 1F 8B 08 이다. 1F 8B 08 로 파일이 시작되어아 하는데 해당 부분이 짤려서 인식을 못하는것 같았다. 이렇게 맨 앞에 1F 8B 08 을 추가해줬다. 추가하고 gz 의 압축을 풀면 압축이 성공적으로 풀리고, 이젠 tar 가 남게 된다. tar 파일 역시 HxD 로 열어봤는데 뭔가 이상했다. 보통 tar 파일을 HxD 로 열면 맨 앞부분에 압축된 파일의 이..

CTF/포렌식 2023.05.12

[Space Heroes CTF] Galactic Federation - 리버싱 / IDA

이번 CTF의 두번째 리버싱 문제 첫번째 문제보단 어렵지만 차근차근보면 충분히 해결할 수 있다. 문제에서 주어지는 것은 galactic_federation.bin 파일이다. 한번 실행시켜 봤는데 USERNAME 과 PASSWORD 를 입력받는다. 바로 IDA 를 이용해 해당 바이너리를 확인해봤다. 여기있는 함수들이 정의된 함수들인데 login_page() 함수가 보인다. 사용자가 입력한 USERNAME 과 PASSWORD 를 v7, v8 에 저장하고, 해당 값을 obfuscate 에 집어넣는다. 그 결과 값이 각각 hktpu, 8fs7}:f~Y;unS:yfqL;uZ 와 같다면 로그인이 성공하게 된다. obfuscate 함수로 가보니 단순히 입력받은 값에 +7 을 하고 있었다. CyberChef(https..

CTF/리버싱 2023.05.11
반응형