반응형

분류 전체보기 712

[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

[angstromCTF] Admiral Shark - MISC / Wireshark / HxD

MISC 로 분류된 문제인데 포렌식 쪽으로 분류해도 될것 같다. MISC는 miscellaneous의 약자로 여러가지 잡다한 이라는 의미를 가지고 있다. 문제에서 주어지는 파일은 admiral_shark.pcapng 이다. Wireshark로 pcapng 파일을 열어볼 수 있다. 조금 내리다보니 TCP 패킷이 보여서 우클릭 - Follow - TCP Stream 을 해보았다. TCP Stream 의 내용을 보니 뭔가 비밀 데이터를 주고받는 느낌이었다. 조금 더 밑으로 가다보니 패킷 Length 가 다른것보다 큰 패킷이 보여서 해당 패킷을 똑같이 우클릭 - Follow - TCP Stream 을 해보았다. 대충 살펴보니 뭔가 압축된 파일인것 같았다. 일단 해당 데이터의 Show data as 를 Raw 로..

CTF/MISC 2023.05.13

[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

[CTFlearn] Bite-code - 리버싱 / Python

CTFlearn의 아흔한번째 문제 이번엔 Medium 난이도의 리버싱 문제이다. 뒤로갈수록 뭔가 앞쪽에 있던 문제들이랑 난이도 책정 기준이 다른것 같다. 문제 설명을 읽어보면 checkNum 이 true 를 리턴하게 하는 input 이 뭐냐고 물어본다. public static boolean checkNum(int); descriptor: (I)Z flags: ACC_PUBLIC, ACC_STATIC Code: stack=2, locals=3, args_size=1 0: iload_0 1: iconst_3 2: ishl 3: istore_1 4: iload_0 5: ldc #2 // int 525024598 7: ixor 8: istore_2 9: iload_1 10: iload_2 11: ixor 12..

워게임/CTFlearn 2023.05.10

[Space Heroes CTF] Rick Sanchez Algorithm - 암호학 / RsaCtfTool

제목부터 RSA 로 삼행시를 해놓은 RSA 관련 암호학 문제이다. RSA는 지금까지도 아주 많이 사용하는 공개키 알고리즘의 이름이다. 개발자인 Rivest, Shamir, Adleman 세명의 이름 앞글자를 따서 RSA 라고 이름을 붙혔다. 엄청나게 큰 숫자일수록 소인수분해가 어렵다는것에 착안해서 설계되었다. RSA의 원리는 아래와 같다. 1. 두 소수 p, q를 준비한다. 2. p-1, q-1과 각각 서로소(1외에는 공약수가 없는 수)인 정수 e를 준비한다. 3. ed를 (p-1)(q-1)으로 나눈 나머지가 1의 되도록 하는 d를 구한다.(d는 개인키로 공개하지 않는다) 4. n=pq를 계산한 후 n과 e를 공개한다.(이 둘이 공개키) 이 알고리즘을 이용해서 공개키-개인키 쌍을 만들고 공개키로 암호화했..

CTF/암호학 2023.05.09
반응형