반응형

CTF/리버싱 41

[SharkyCTF] Z3ROBOTWAVES - 리버싱 / IDA

리버싱 문제 그렇게 어렵진 않았는데 매우 귀찮은 문제였다. 문제 설명을 읽어보면 개발자가 어떤 로봇을 만들었는데 그 로봇이 잠겨서(Locked) 비밀번호를 요구한다고 한다. 문제에서 주어지는 파일은 z3_robot 파일이다. 리눅스 환경에서 file 명령어를 통해 어떤 파일인지 살펴보면 ELF 파일이라고 한다. ELF는 리눅스에서 실행가능한 실행파일이다. 터미널에서 ./z3_robot 이라고 입력하면 실행이 가능하다. 실행시켜봤더니 아까 들었던것 처럼 비밀번호를 요구하고 있다. 시험삼아 hello 라고 입력해봤는데 그랬더니 로봇이 기분나쁘게 웃으면서 프로그램이 종료되었다. IDA 라는 디스어셈블러를 이용해 문제파일을 살펴보았다. main 함수의 수도코드를 보면, fgets 함수를 이용해 s 라는변수에 사..

CTF/리버싱 2022.08.16

[HouseplantCTF] thedanzman - 리버싱 / Python / ROT13 / Base64

마지막 Python 리버싱 문제. 문제 설명을 읽어보면, EZ, PZ, LEMON, SQUEEZY 문제보다 훨씬 어렵게 만들어서 플래그를 절대 획득하지 못할것이라고 한다. (EZ : https://hackingstudypad.tistory.com/167) (PZ : https://hackingstudypad.tistory.com/169) (LEMON : https://hackingstudypad.tistory.com/171) (SQUEEZY : https://hackingstudypad.tistory.com/172) 하지만 역시나 차근차근 계산하면 충분히 풀 수 있는 문제이다. 주어지는 문제파일은 pass4.py 파일이다. 패턴은 이전 문제와 똑같다. IDLE을 이용해 py 파일을 실행시켜 보니 Ente..

CTF/리버싱 2022.06.17

[HouseplantCTF] SQUEEZY - 리버싱 / Python / Base64 / XOR

계속해서 이어지는 python 리버싱 문제 Ok this time, you aren't getting anywhere near anything 자꾸 쉬운 문제만 내면서 멘트는 엄청난 각오를 다지고 있는게 귀엽다. 주어지는 문제파일은 pass3.py 파일이다. 먼저 IDLE을 이용해 py파일을 한번 실행시켜 봤다. 역시나 이번에도 패턴은 똑같다. Enter the password: 라는 문구가 나오고, 123을 입력해봤더니 Incorrect password! 라는 문구가 나오면서 저번처럼 약올리는듯한 멘트를 출력한다. import base64 def checkpass(): userinput = input("Enter the password: ") key = "meownyameownyameownyameown..

CTF/리버싱 2022.06.15

[HouseplantCTF] LEMON - 리버싱 / Python

계속해서 이어지는 쉬운 파이썬 리버싱 문제 똑같은 패턴이다. 조금 더 secure한걸 만들었다고 한다. 하지만 역시나 아주 쉽게 플래그를 얻을 수 있다. 주어지는 문제파일은 pass2.py 파일이다. 먼저 IDLE을 이용해 py파일을 한번 실행시켜 봤다. Enter the password: 라는 문구가 나오고, 123을 입력해봤더니 Incorrect password! 라는 문구가 나온다. 그리고 나서 저번처럼 약올리는듯한 멘트를 출력한다. def checkpass(): userinput = input("Enter the password: ") if userinput[0:4] == "rtcp": if userinput[10:13] == "tHi": if userinput[22:25] == "cuR": if..

CTF/리버싱 2022.06.14

[HouseplantCTF] PZ - 리버싱 / Python

어려운 Java 리버싱 문제를 풀고 난 후 다시 머리를 식혀주는 쉬운 문제 문제 제목부터 PZ (EZ-PZ) 이다. (EZ : https://hackingstudypad.tistory.com/167) 문제 설명을 읽어보면 EZ 문제보다 조금 더 잘 만든거 같다고 아마 플래그를 얻지 못할것이라고 한다. 하지만 아주 쉽게 얻을 수 있다. EZ문제도 그렇고 이 문제도 그렇고 리버싱 이라기보다 그냥 틀린그림찾기 정도가 아닐까 싶다. 이번에도 역시 pass1.py 파일이 주어진다. IDLE을 이용해 py파일을 실행시켜 보았다. Enter the password: 라는 문구가 나오고, 123을 입력해봤더니 Incorrect password! 라는 문구가 나온다. 그다음 뭔가 은근 기분나쁜 느낌의 노래같은걸 출력한다..

CTF/리버싱 2022.06.12

[HouseplantCTF] Bendy - 리버싱 / Java

Java 리버싱 최종단계 문제 확실히 이전 두 문제(Fragile, Breakable) 보다 더 어렵다. 막 기술적으로 어렵다기보다 계산을 복잡하게 해서 머리가 아파진다. Fragile : https://hackingstudypad.tistory.com/163 Breakable : https://hackingstudypad.tistory.com/164 이번에도 역시 java 파일이 주어진다. import java.util.*; public class bendy { public static void main(String args[]) { Scanner scanner = new Scanner(System.in); System.out.print("Enter flag: "); String userInput = ..

CTF/리버싱 2022.06.11

[HouseplantCTF] EZ - 리버싱 / Python / 주석

본격적으로 어려운 Java 리버싱 문제를 풀기 전 조금 머리를 식히는 느낌으로 나온 귀여운 문제이다. 사실 이 문제는 리버싱이라고 부르기도 좀 그렇다; 문제 설명을 읽어보면 password system을 만들어서 flag를 획득하지 못할 것이라고 한다. 문제 파일로 주어진건 pass0.py 파일이다. 시험삼아 윈도우 cmd창에서 해당 파일을 먼저 실행시켜 봤다. 그랬더니 무슨 사람 모양으로 특수문자들이 출력되는데, 맨 위쪽에 보면 플래그 같은것도 같이 출력되어 있다. rtcp{tH1s_i5_4_d3c0Y_fL4g_s0_DoNt_sUbm1T_1t!} 라고 적혀있는데 이걸 읽기 쉽게 다시 쓰자면 This is a decoy flag so Don't submit it! 이라고 적혀있는것이다. 한마디로 함정이다..

CTF/리버싱 2022.06.10

[HouseplantCTF] Breakable - 리버싱 / Java

두번째 리버싱 문제 어제 포스팅한 Fragile 문제보다 조금 더 어렵게 진화한 문제이다. Fragile : https://hackingstudypad.tistory.com/163 이번에도 역시 java 파일이 주어진다. import java.util.*; public class breakable { public static void main(String args[]) { Scanner scanner = new Scanner(System.in); System.out.print("Enter flag: "); String userInput = scanner.next(); String input = userInput.substring("rtcp{".length(),userInput.length()-1); if..

CTF/리버싱 2022.06.07

[HouseplantCTF] Fragile - 리버싱 / Java

이번 대회의 리버싱 문제 중 가장 쉬웠던 문제이다. 처음엔 뭐 이렇게 쉽나 생각했는데 약간 함정이었던게 이 문제를 베이스로 해서 뒤로 갈 수록 더욱더 괴상한 문제들이 나왔었다. 철저한 빌드업이었던것.. 문제파일로는 fragile.java 파일이 주어진다. import java.util.*; public class fragile { public static void main(String args[]) { Scanner scanner = new Scanner(System.in); System.out.print("Enter flag: "); String userInput = scanner.next(); String input = userInput.substring("rtcp{".length(),userInpu..

CTF/리버싱 2022.06.06

[UMDCTF] Twilight Zone - 리버싱 / dnSpy

리버싱 문제 생각보다 어려워서 시간을 많이 투자했다. 문제파일로 TwilightZone.exe 파일이 주어진다. 주어진 exe파일을 실행시키면 이렇게 느끼한 아저씨 사진과 함께 비밀번호를 입력하는 창이 뜬다. 비밀번호칸에 hello 라고 시험삼아 입력해봤는데 당연히 틀린 비밀번호기 때문에 Not happening! 이라는 알람창이 뜬다. exe 파일이니 평소에 하던대로 디스어셈블러인 IDA 프로그램으로 열어보았다. 그런데 평소와 다른 인터페이스가 나왔다. .NET으로 개발하면 이런식으로 나온다고 한다. Mystery라는 함수가 있어서 내용을 살펴보는데 뭔가 암호화시켜서 저장하고 있는듯 보였다. 아무래도 비밀번호를 내부에 암호화해서 저장하고 있는듯 하다. IDA로 이리저리 보다 너무 가독성이 떨어져서 어떻..

CTF/리버싱 2022.05.11
반응형