-
[LOB] golem > darkknightWargame/Lord of Buffer Overflow 2021. 7. 14. 13:24
[LOB] golem > darkknight
이번 문제는 FPO를 이용한 문제다.
FPO(Frame Pointer Overflow)는 SFP를 조작해 eip를 변조시키는 공격이다.
이 과정을 이해하려면 함수 에필로그 과정을 알고 있어야 한다.
먼저 소스코드를 보면 problem_child함수에서 strncpy로 41byte를 복사하는데
여기서 sfp의 끝 1byte를 조작할 수 있다.
gdb로 보면 0xbffffab0에 쉘 코드의 주소가 들어있다.
쉘 코드를 buffer에 넣고 sfp 마지막 1byte를 [0xbffffab0 - 4]으로 변조하면
main 에필로그의 pop eip를 통해 eip가 0xbffffab0주소에 있는 값(0xbffffab4)이 된다
그럼 결국 0xbffffab4로 jmp 해서 쉘이 실행된다.
darkknight / new attacker
'Wargame > Lord of Buffer Overflow' 카테고리의 다른 글
[LOB] bugbear > giant (0) 2021.07.15 [LOB] darkknight > bugbear (0) 2021.07.14 [LOB] skeleton > golem (0) 2021.07.14 [LOB] vampire > skeleton (0) 2021.07.13 [LOB] troll > vampire (0) 2021.07.05