티스토리 뷰




FTZ level14

pw : what that nigga want?


레벨 14입니다.


먼저 힌트를 보겠습니다.



좋은 효과를 준다니 열심히 해야겠습니다.


buf의 크기는 20인데 45만큼 입력을 받는군요. 이 또한 오버플로우 공격이 가능합니다.

check의 값을 0xdeadbeef로 만들어야 하니 정확히 알기 위해 디버깅 해보겠습니다.


먼저 디버깅을 하기 위해 tmp에 파일을 옮기겠습니다.



보기 편한 intel방식으로 보겠습니다!


main의 어셈블리 코드입니다.


0x38만큼 스택프레임을 구성하고 있습니다.


0x38은



10진수로 56입니다.


그 다음 중요한 부분입니다.


ebp-16과 0xdeadbeef를 비교하고 있습니다.


따라서 check는 ebp-16이군요!



입력은 ebp-56부터 받는군요


따라서 입력을 40개를 받고 그 다음부터 0xdeadbeef가 있어야 합니다.


바로 페이로드 구성해보겠습니다.


(python -c 'print "a"*40+"\xef\xbe\xad\xde"';cat) | ./attackme


fgets는 gets와 마찬가지로 | 파이프 명령어로 값을 넘겨줘야 합니다.


쉘이 실행되었습니다.


실제 파일에서 실행시켜보겠습니다.



권한을 얻었습니다.




Level15 Password is "guess what".

'pwnable > FTZ' 카테고리의 다른 글

[Hackerschool FTZ] Level16 write-up  (0) 2018.01.15
[Hackerschool FTZ] Level15 write-up  (0) 2018.01.15
[Hackerschool FTZ] Level13 write-up  (0) 2018.01.15
[Hackerschool FTZ] Level12 write-up  (0) 2018.01.15
[Hackerschool FTZ] Level11 write-up  (0) 2018.01.15
Comments