본문 바로가기

Security118

[CodeEngn] CodeEngn Basic RCE L08 OEP 주소를 구하면 되는 문제이다. 두 가지 방법이 있다. 일단 언패킹을 안하고 푸는 방법이다. 처음 시작 부분이 PUSHAD로 되어있는데 POPAD를 찾아서 그 후에 JMP하는 부분을 찾으면 된다. 맨 처음 키면 PUSHAD가 있다. command 찾기로 POPAD 명령어를 찾아준다. 이렇게 POPAD를 찾으면 아래에 JMP 명령어가 있다. 여기서 JMP해서 도착하는 지점이 OEP 주소이다. 따라서 OEP 주소는 01012475이다. 다른 방법은 언패킹을 해서 푸는 방법이다. 언패킹을 해준 뒤 파일을 열어준다. 별다른 절차 없이 바로 OEP 주소가 01012475임을 알 수 있다. (언패킹한 후의 시작 주소) 따라서 답은 01012475이다. 2022. 6. 25.
[CodeEngn] CodeEngn Basic RCE L06 6번 문제이다. 언팩을 하라고 했으니 패킹된 파일일 것이라 예상할 수 있다. 그리고 시리얼 번호를 찾으면 되니 문자열 위주로 먼저 찾아보면 될 것 같다. 일단 Exeinfo로 패킹 상태를 알아보았다. UPX 패킹이 되어있다는 것을 확인한 뒤 언패킹해준다. 언패킹 완료했다. 다음으로 Ollydbg로 파일을 열어준다. 문자열 검색을 해서 올바른 시리얼 값을 입력했을 때 출력되는 문구 같은 것을 찾았다. 그 후 일단 프로그램을 실행시켜서 아무 값이나 넣어줘봤다. 값을 넣었더니 위의 화면처럼 위쪽에 내가 입력한 값이 떴다. 코드를 보면 두 값을 비교하고 있음을 알 수 있다. 따라서 시리얼 값은 AD46DFS547이다. 실제로 값을 넣어줬더니 맞았다는 메세지 창이 떴다. 다음으로 OEP 주소를 찾아야 한다. OE.. 2022. 6. 25.
[OtterCTF - Memory Forensics] 6. Silly Rick 보호되어 있는 글 입니다. 2022. 6. 24.
[OtterCTF - Memory Forensics] 5. Name Game2 보호되어 있는 글 입니다. 2022. 6. 24.
[OtterCTF - Memory Forensics] 4. Name Game 보호되어 있는 글 입니다. 2022. 6. 24.
[OtterCTF - Memory Forensics] 3. Play Time 보호되어 있는 글 입니다. 2022. 6. 21.
[OtterCTF - Memory Forensics] 2. General Info 보호되어 있는 글 입니다. 2022. 6. 21.
[OtterCTF - Memory Forensics] 1. What the password? 보호되어 있는 글 입니다. 2022. 6. 21.
[pwnable.kr] Toddler's Bottle - passcode 이번에는 passcode 문제를 풀어보았다. 문제를 읽어보니 passcode 기반의 로그인 시스템을 만들었는데 무언가 컴파일 에러가 난 것 같다. 딱히 얻을만한 건 없는 것 같으니 넘어가자. 문제에 있는 명령어를 통해 접속해준다. 접속 완료했다. 파일은 이렇게 있었고 당연히 flag의 내용은 확인할 수 없었다. passcode 바이너리 파일을 실행해서 다음과 같이 임의의 값을 넣어줘봤다. 대충 입력하니 segmentation fault가 뜬다. 원인을 모르겠으니 cat으로 passcode의 c 소스코드를 확인해보았다. (너무 길어서 코드를 긁어왔다.) #include #include void login(){ int passcode1; int passcode2; printf("enter passcode1 .. 2022. 6. 19.