본문 바로가기

WARGAME/hackerschool ftz,lob

[BOF 원정대] golem-> darkknight (level 12)

Frame Point Overflow 기법을 사용하는 문제이다.

원리는 ebp의 마지막 1바이트를 고쳐서 기계어 leave 연산 시 쉘코드가 있는 곳으로 esp를 옮기는 것이다.

(자세한 원리는 검색 후 쉽게 이해할 수 있기 때문에 적지 않겠습니다)


problem_child의 매개 변수인 src에 system() 라이브러리를 이용한 RTL 코드를 올리고 마지막 41번째 바이트를 src를 가리키게 했다.


그럼 esp가 src의 첫 부분으로 옮겨지고 그 부분의 코드를 수행하게 된다.







공격 코드