고전적인 방법
-NOP(보통 \x90) 사용: nopsled 기법
-buffer + sfp(4byte) + ret(4byte) + NOP + shell code
-buffer + sfp에는 NOP 또는 아무 문자들로 채워서 BOF을 발생시킨다.
-ret(return address)에는 ret 뒤의 NOP 중 임의의 주소를 넣는다.
-NOP의 역할은 ret에 임의의 NOP의 주소를 넣음으로써 쉘코드가 있는 곳까지 아무런 수행을 하지 않고 흘러들어 가게 하는 것이다.
->CPU는 NOP을 만나면 유효한 instruction이 있는 쉘코드의 시작점이 나올 때까지 한 바이트씩 EIP를 이동시킨다.
->NOP으로 쉘코드의 정확한 시작점을 주지 않아도 stack pointer가 흘러서 쉘코드 시작점까지 도달할 수 있다.
[LOB] level10: vampire -> skeleton (0) | 2019.05.01 |
---|---|
[LOB] level8: orge->troll (0) | 2019.04.28 |
[LOB] level3: cobolt -> goblin (0) | 2019.04.01 |
[LOB] gremlin -> cobolt (0) | 2019.03.28 |
[LOB] gate -> gremlin (0) | 2019.03.28 |