HINT : attackme의 소스코드
level11과 비슷한 bof이다.
gets으로 str을 입력 받을 때 bof을 이용하여 ret값을 조작하여 쉘을 딸 수 있다.
환경변수에 shellcode를 입력한다.
0xbffffbfc를 보면 환경변수에 저장해놓은 \x90+shellcode가 들어있는 것을 알 수 있다.
이 주소를 ret 위치에 덮으면 된다.
gets함수 뒤에 break point 를 걸어 놓고 A를 입력해 준 결과,
0xbffffe860부터 A가 입력된 것을 볼 수 있다.
그리고 0xbfffe96c에 ret 주소가 적혀 있는 것도 확인 할 수 있다.
이 둘 사이의 거리를 계산해보면,
(buf + sfp) (268) + ret(4) 가 된다.
따라서 "A"*268 + "0xbffffbfc"(shellcode 실행 주소) 를 하게 되면 Shellcode가 실행 된다.
shellcode가 잘 실행되어 쉘을 얻을 수 있었다. level13의 password를 알았으니
이제 level13으로 올라가 보자.
[Write-up] Level 14 (0) | 2019.12.07 |
---|---|
[Write-up] Level 13 (0) | 2019.12.07 |
[Write-up] Level 11 (0) | 2019.12.06 |
[Write-up] Level 10 (0) | 2019.12.06 |
[Write-up] Level 9 (0) | 2019.12.06 |
댓글 영역