본문 바로가기

[Wargame Write-up]/Lord of Buffer Overflow

[LoB RedHat 6.2] LEVEL 15: giant -> assassin

LEVEL 15: no stack, no RTL


스택, 공유 라이브러리로의 JMP가 모두 막혔다.


코드 영역으로 JMP해 우리 코드를 실행하게 하자.


ret 코드에 ret 주소를 덮게 되면, esp+4에 있는 주소를 실행해, 우회할 수 있다.




ret이 있는 코드(gadget)를 찾아보자.




ret 뒤에 바로 NOP이 오는 것 중 하나 고르고, 그 다음부터는 RTL 기법을 써주자.


&system, &exit, &"/bin/sh"는 모두 13단계에서 구했으므로, 이번에도 재활용하겠다.


[Payload]

buf+sfp[44]: dummy

main ret[4]: 임의의 ret 코드 주소

+ &system + &exit + &"/bin/sh"