티스토리 뷰
level14에 들어와 힌트부터 확인을 하자.
check 변수에 대해 직접 입력하는 구간이 없다. 따라서 우리는 버퍼 오버플로우를 이용해 check 값을 0xdeadbeef로 변경하여야 한다.
우선 디스어셈블을 수행하였다.
main+29 를 통하여 check의 값은 ebp로부터 16만큼 떨어져 있는 것을 알 수 있었고 buf 변수는 ebp로부터 0x38(56) 만큼 떨어져 있는 것을 main+3을 통해 알 수 있다.
따라서 buf에서 40byte만큼 값을 입력한 후에 0xdeadbeef를 입력해주면 공격은 성공하게 된다.
$(python -c 'print "A"*40+"\xef\xbe\xad\xde"'; cat) | ./attakme
라는 형식으로 공격할 수 있다.
'[Hackerschool] F.T.Z' 카테고리의 다른 글
해커스쿨 - level16 (0) | 2017.11.16 |
---|---|
해커스쿨 - level15 (0) | 2017.11.16 |
해커스쿨 - level13 (0) | 2017.11.15 |
해커스쿨 - level12 (0) | 2017.11.15 |
해커스쿨 - level11 (2) | 2017.11.06 |
댓글