나의 기록, 현진록

[War Game] ftz level13 본문

War Game/ftz

[War Game] ftz level13

guswlsdk 2018. 1. 27. 21:12
반응형

ftz level13










다음은 hint의 내용이다.



버퍼 오버플로우 기법으로 ret 값에 쉘코드의 주소를 넣으면 된다.


단, i 변수에 저장된 값이 0x1234567을 그대로 보존해야만 한다.



ret까지의 거리와 i 변수의 거리를 알아야 한다.






ebp부터 sfp까지의 거리는 0x418 -> 1048byte이다.


1052byte부터 ret의 주소


0x1234567이 저장된 곳을 확인해보자(굳이 안 해도 된다.).






0x01234567(==0x1234567)이 저장되어 있음 


그렇다면 ebp부터 i변수가 저장된 곳은 어디일까


AT&T 문법에서 intel 문법으로 바꿔보자.



main+69를 보면 


0x1234567을 ebp-12와 비교한다.


hint의 내용에서 if문에 속한다.


ebp-12은 i 변수라는 의미이다.


ebp-1048이 sfp까지의 거리이다.


그렇다면 i 변수는 1036byte부터 시작할 것이다.


환경변수에 쉘코드를 저장하고 주소를 출력한다.




페이로드 작성


ret 값은 1052byte부터 이다.


[ buf + 1024 ] + [ 쓰레기 + 12 ] + [ i 변수 + 4 ] +  [ 쓰레기 + 8 ] + [ sfp + 4 ] = 1052


이 다음에 쉘코드를 넣으면 된다.

 


반응형

'War Game > ftz' 카테고리의 다른 글

[War Game] ftz level15  (0) 2018.01.28
[War Game] ftz level14  (0) 2018.01.28
[War Game] ftz level12  (0) 2018.01.26
[War Game] ftz level11  (0) 2018.01.26
[War Game] ftz level10  (0) 2018.01.19