Frame Point Overflow 기법을 사용하는 문제이다.
원리는 ebp의 마지막 1바이트를 고쳐서 기계어 leave 연산 시 쉘코드가 있는 곳으로 esp를 옮기는 것이다.
(자세한 원리는 검색 후 쉽게 이해할 수 있기 때문에 적지 않겠습니다)
problem_child의 매개 변수인 src에 system() 라이브러리를 이용한 RTL 코드를 올리고 마지막 41번째 바이트를 src를 가리키게 했다.
그럼 esp가 src의 첫 부분으로 옮겨지고 그 부분의 코드를 수행하게 된다.
공격 코드
'WARGAME > hackerschool ftz,lob' 카테고리의 다른 글
[BOF 원정대] vampire-> skeleton(level 10) (0) | 2014.08.03 |
---|---|
[BOF 원정대] skeleton-> golem(level 11) (0) | 2014.08.03 |
[BOF 원정대] darkknight-> bugbear(level 13) (0) | 2014.08.03 |
[BOF 원정대] bugbear-> giant (level 14) (0) | 2014.08.03 |
[BOF 원정대] giant -> assassin(level 15) (0) | 2014.08.03 |