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"
'[Wargame Write-up] > Lord of Buffer Overflow' 카테고리의 다른 글
| [LoB RedHat 6.2] LEVEL 17: zombie_assassin -> succubus (0) | 2016.10.23 |
|---|---|
| [LoB RedHat 6.2] LEVEL 16: assassin -> zombie_assassin (0) | 2016.10.22 |
| [LoB RedHat 6.2] LEVEL 14: bugbear -> giant (0) | 2016.10.19 |
| [LoB RedHat 6.2] LEVEL 13: darkknight -> bugbear (0) | 2016.10.19 |
| [LoB RedHat 6.2] LEVEL 12: golem -> darkknight (0) | 2016.10.19 |