나의 기록, 현진록

[War Game] ftz level11 본문

War Game/ftz

[War Game] ftz level11

guswlsdk 2018. 1. 26. 11:25
반응형

ftz level11







level12의 권한을 가진 파일


현재 level11 권한을 가진 지금도 실행할 수 있는 권한이 있다.



hint의 내용이다.




버퍼 오버플로우


즉 버퍼를 넘치게 하는 문제이다.


실행 인자를 입력하면 str 배열에 저장되는데


strcpy는 입력한 그대로 복사를 하기 때문에 256 바이트 이상의 크기도 그대로 수용한다.




setreuid(3092,3092)


3092 사용자 권한으로 바꾼다는 의미이다.


3092는 어떤 계정인지 알아보면



level12 계정이다.




setreuid 함수로 level12 권한을 가지고


/bin/bash or /bin/sh을 실행하면 level12 계정을 유지할 수 있다.



가장 기본적인 버퍼 오버플로우 기법인 ret 주소를 쉘코드로 덮어 씌운다. 



ret까지의 거리를 알기 위해서 gdb로 어셈블리 코드를 분석한다.








0x08048473 <main+3>: sub    $0x108,%esp


sfp 값까지의 크기가 0x108이다.


0x108 -> 264(10진수)


분석해보면


[str 배열 256] + [ 쓰레기 값 8 ] = 264


264 바이트 이후로는 sfp와 ret이 존재한다


264부터는 sfp고


268부터는 ret이다.


268부터 쉘코드의 주소를 입력하면 성공


쉘코드를 환경변수에 저장하여 주소를 알아내자.



저장된 것을 확인




주소를 출력하기 위한 코드를 작성한다.








주소는 0xbffffc10


이제 페이로드를 작성하면 된다.





반응형

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

[War Game] ftz level13  (0) 2018.01.27
[War Game] ftz level12  (0) 2018.01.26
[War Game] ftz level10  (0) 2018.01.19
[War Game] ftz level9  (0) 2018.01.19
[War Game] ftz level8  (0) 2018.01.19