본문 바로가기

Wargame

(46)
[pwnable.kr] fd https://pwnable.kr/ https://pwnable.kr/ there are flag files corresponding to each challenges (similar to CTF), you need to read it and submit to pwnable.kr to get the corresponding point. in order to read the flag file, you need some skills regarding programming, reverse-engineering, bu pwnable.kr 마지막의 ssh fd@pwnable.kr -p2222 와 password로 guest 를 입력해 접속한다. ls -l 명령어를 입력해 현재 디렉토리에서 권한, 파일 수, 소유자..
Python 프로그래머스 문제 풀이 20제 #1 하) 팩토리얼 출력하기 (PCCE 모의고사2-4) https://school.programmers.co.kr/learn/courses/15007/lessons/121676 #2 하) 두 수의 차 (프로그래머스-두 수의 차) https://school.programmers.co.kr/learn/courses/30/lessons/120803 #3 하) 나머지 구하기 (프로그래머스-나머지 구하기) https://school.programmers.co.kr/learn/courses/30/lessons/120810 #4 하) 머쓱이보다 키 큰 사람 (프로그래머스-머쓱이보다 키 큰 사람) https://school.programmers.co.kr/learn/courses/30/lessons/120585 #5 ..
[Reversing.kr] Replace exe 파일을 실행하니 위와 같은 화면이 나온다. "Correct!" 를 더블클릭. "Correct!" 에 BP를 걸고 주변을 살펴봐도 별게 없어서, 401073 ~ 401084 부분을 참조하는 부분을 검색해 "Correct!"로 JMP하는 다른 부분을 찾아보자. 음. 아무것도 안나온다. 엥. 난 왜 이상한데서 멈추지? 지금 컴퓨터가 과열돼서 제정신이 아닌 모양이다. 원래는 40466F 에서 멈춘다는데 eax 주소를 참조해 0x90 으로 채우고, 그 eax 에 들어갈 값을 유추해야 한다고 한다. 아, 드디어 제대로 됐다! eax + 내 시리얼의 입력값, to hex 를 변경해 0x90 즉, NOP를 도출해내 프로그램이 동작하게 해야하는거다. 위의 eax 6017E80B 는 123456을 입력해 Check..
[Reversing.kr] Easy ELF IDA Pro로 왜인지 안 열린다 싶었는데 가상머신 Windows 7 x64 에서는 열린다. 왜지? 같은 파일인데 여기서는 안되는게 거슬리지만 아무튼 분석을 해보겠다. main 함수를 보자. sub_8048434는 scanf를 통해 사용자로부터 문자열을 입력받고, sub_8048451은 입력값이 조건을 만족하면 1을 반환하여, sub_80484F7이 호출되게 하고 프로그램이 "Correct" 문자열을 출력하게 한다. 그 조건이 뭔지 알아야하기 때문에 sub_8048451 을 뜯어보도록 하자. 각 블록이 각각의 조건을 만족해 점프가 수행되고 1을 반환한다. string[0] ^ 0x34 == 0x78 string[1] == '1' string[2] ^ 0x32 == 0x7C string[3] ^ 0x88 ..
[Reversing.kr] Easy Unpack 이러길래 가상머신에서 열어주었다. 압축파일을 열고, ReadMe.txt 를 확인하니 OEP를 찾으란다. Plugins > Generic OEP Finder 답이 나왔다. 00401150
[Reversing.kr] Easy Keygen Serial 값이 5B134977135E7D13인 Name 을 찾는 문제이다. 파일을 실행하니 저런 식으로 Name과 Serial을 입력받길래 아무렇게나 쳐봤는데 답이 아니라 그런지 그냥 꺼졌다. 이번 문제는 Ollydbg 로 풀어볼까 한다. x32로 여는거더라. Ctrl + g 로 401000 main 함수를 검색한다. 마지막 세줄이 좀 특이하다. 0x10, 0x20, 0x30 을 각각 esp+10, esp+11, esp+12 에 저장하는걸 볼 수 있다. 위의 루프에서 name 과 xor 키 연산을 통해 serial num 을 생성하는 것을 볼 수 있다. 위의 부분에서 serial num을 계산하는데, [esp+esi+c] 에는 0x10, [esp+ebp+10] 에는 입력한 name의 첫 글자, [es..
[Reversing.kr] Easy Crack 다운받은 exe 파일을 실행하니 위와 같은 화면이 나온다. 아무 숫자나 넣어봤더니 위와 같은 메시지가 나왔다. 옳은 패스워드를 찾아내는 문제인 듯 하다. Immunity Debugger로 열어서 Search for > All referenced text strings 로 문자열 보기 Congratulation!! 으로 이동해보자. 함수의 시작 부분인 00401080 SUB ESP 64 에 F2를 눌러 Break Point를 걸고, 보도록 하자. 캡쳐는 그냥 한 장에 다 들어가게 했지만. 004010B0 에서 [ESP+5] 값과 0x61을 비교하여 같지 않으면 실패를 출력하는 부분으로 CMP, 점프하는걸 알 수 있다. 16진수 61은 문자로 a이다. 입력값으로 1234를 넣고 메모리에서 ctrl+g를 눌러..
GrrCON 2015 #1, #2, #3, #4, #5, #6 http://www.ctf-d.com/challenges 저기서 파일을 다운받는거라던데 열리지 않아서 문제를 어디서 구해야할까 걱정했는데, Target1-1dd8701f.vmss 파일로 #1 ~ #16 문제를 전부 푸는거라고 하더라. vmss는 가상 머신에서 일시 중지(suspend) 상태일 때 운영체제 상태를 저장한 파일 확장자이다. 풀어보자. #1 프런트 데스크 직원들은 보안 업데이트라고 생각하고 이상한 이메일을 클릭한 것을 당신에게 보고했다. 프런트 데스크 사용자의 메일주소로 이메일을 보낸 전자 주소는 무엇인가? volatility 라는 오픈 소스 기반으로 CLI 인터페이스 제공하는 메모리 분석 도구를 사용한다. -h : 플러그인 옵션 확인 -f 분석 대상 파일 imageinfo : profile ..