농소
The Lord Of The BOF // assasin -> zombie_assassin 본문
자 이번에도 문제를 풀어보겠습니다
이번 zombie_assassin는
strncpy를 이용하고있네요 ㅎㅎ
전과 같은 방법으로 풀 수는 없을것 같네요
근데 정말 친절하게도 FEBP를 이용하라고 합니다.
전에도 FAKE EBP를 이용한 문제가있었는데 이번엔 응용버전이네요
기본적으로 FAKE EBP를 이용하려면 에필로그가 두번 실행이 되어야합니다
여기선 에필로그가 한번밖에 실행이 안되므로 FAKE EBP를 사용할 수 없습니다
그러나 전 문제를 풀어보셨으면 눈치를 채셨을 겁니다
eip에 text segment영역중 leave명령어를 호출하면 에필로그가 두번 실행이 될 수 있게 만들 수 있습니다.
자 이제 진행해 봅시다.
우선 main문의 leave 주소를 기억해 둡시다
처음 "aaaa" 4바이트는 fake eip가 될 것이고 a * 36 에는 쉘코드가 들어가게 됩니다
bbbb에는 fake ebp로 만들고 싶은 주소를 넣어주고
eip가 들어갈 곳에는 main문의 leave주소를 넣어 fake ebp를 생성할 수 있게 해줍니다.
fake ebp가 정상적으로 만들어지는지 확인해 보겠습니다.
현재 ebp값은 0xbffffaa8 입니다.
main문의 leave를 한번더 수행해 에필로그를 두번 거치고나서 ebp가 fake ebp로 바뀐 모습을 보입니다.
자 이제 처음 aaaa에 fake eip를 넣고 나머지36바이트에는 nop코드와 쉘코드를 올려서 실행해 보겠습니다.
nop코드와 쉘코드까지 올린모습입니다
주소가 변하므로 16바이트씩 움직여 실행한결과 정상적으로 쉘이 떨어졌습니다.
'Wargame > The Lord Of The BOF' 카테고리의 다른 글
The Lord Of The BOF // succubus -> nightmare (0) | 2018.02.22 |
---|---|
The Lord Of The BOF // zombie_assassin -> succubus (0) | 2018.02.21 |
The Lord Of The BOF // giant -> assasin (0) | 2018.02.21 |
The Lord Of The BOF // bugbear -> giant (0) | 2018.02.21 |
The Lord Of The BOF // darkknight -> bugbear (omega,RTL) (0) | 2018.02.19 |