농소
음 이번문제는 알고보면 윷놀이와는 전혀 상관이없지만 ㅎ 도개걸윷모 함수가 존재합니다 보시면 알다시피 순서대로 호출을 해야만 함수가 정상적으로 실행이 되고 마지막 모함수에 system함수를 실행할 수 있게됩니다. 또 모 함수에서만 cmd라는 인자를 받아 system 인자로 들어가게 되네요 차근차근 따라가면 풀 수 있는 문제입니다. call을 하지않고 jmp를 이용하여 함수에 접근하기에 기존 eip가 함수에 접근했을 때 eip가 호출함수의 ebp가 되는 성질을 이용하여 풀면 될 것 같습니다. 우선 각각 함수의 시작 주소를 찾고 순서대로 호출할 수 있게 만들어 줍니다 정상적으로 값이 채워진것을 확인 했고 실제 실행을 했을때 모든함수가 호출된 것이 확인됩니다자 이제 인자를 넣어야 system(arg)가 실행이 ..
자 이번에도 문제를 풀어보겠습니다 이번 zombie_assassin는 strncpy를 이용하고있네요 ㅎㅎ전과 같은 방법으로 풀 수는 없을것 같네요근데 정말 친절하게도 FEBP를 이용하라고 합니다. 전에도 FAKE EBP를 이용한 문제가있었는데 이번엔 응용버전이네요기본적으로 FAKE EBP를 이용하려면 에필로그가 두번 실행이 되어야합니다여기선 에필로그가 한번밖에 실행이 안되므로 FAKE EBP를 사용할 수 없습니다그러나 전 문제를 풀어보셨으면 눈치를 채셨을 겁니다eip에 text segment영역중 leave명령어를 호출하면 에필로그가 두번 실행이 될 수 있게 만들 수 있습니다.자 이제 진행해 봅시다. 우선 main문의 leave 주소를 기억해 둡시다 처음 "aaaa" 4바이트는 fake eip가 될 것이..
이어서 다음 문제를 진행해 보겠습니다. 전 단계에서는 RTL을 이용하여 문제를 풀었다면이번에는 RTL을 막아놨네요스택메모리 영역("\xbf")과 라이브러리 영역("\x40") 을 못 쓴다면 이제 남은건 data, text영역이 있네요그러나 data은 사용할 수 없으니 text segment("\x08)를 이용하도록 합시다 c파일에서 확인했듯이 eip를 제외한 buf+ebp영역을 전부 0으로 초기화 되어있습니다.환경변수를 충분히 변조하여 이용 가능하지만 stack메모리 영역도 이용할 수 없고.이런경우 ret 슬레이딩 기법을 이용하면 해결 가능하겠네요 eip(=ret ) 에 main문의 에필로그 ret을 넣어준다면 pop eip, jmp eip가 실행되므로 스택포인터가 증가하게되어결과적으로 eip가 4바이트..