darknight
-
[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 해서 쉘..