-
혹시나 이상하거나 잘못된 것이 있다면 댓글 부탁드립니다.
Darkelf 문제이다.
우선 분석을 위해 darkelf파일과 길이가 같은 파일명으로 만들어준다.
나는 darkelp로 했다.
코드를 보자
인자의 길이를 제한하는 if문이 등장했다.
하지만 코드를 보고들었던 생각은
argc의 갯수 제한이 없기 때문에 인자를 하나 더 추가해주면
충분히 길이제한이 있더라도 우회가 가능하다는 생각이 들었다.
그래서 인자를
argv[1] = "a"*44 + ret
argv[2] = shellcode
형식으로 주고 ret값을 argv[2]의 시작주소로 진행하면
길이제한과 나머지 조건들 모두 우회가 가능할 것이라고 생각했다.
위에서 설명한대로 payload를 만들어서 진행해보았다.
core파일이 생성되었고 ret에 정확하게 argv[2]의 주소를 주기위해서
gdb로 열어보았다.
argv[1]에 입력던 "a"*44개와 임의로 넣은 argv[2]주소, 0x00 다음에 쉘코드가 보였다.
그러므로 우리가 argv[1]에서 넣어줄 ret 주소는
argv[2]의 시작주소인 0xbffffe9a라는 걸 알 수 있었다.
바로 payload를 수정하고 진행하였다.
다음 단계로~~
반응형'표튜터와 함께하는 Pwnable > The Lord Of the BOF Write-up' 카테고리의 다른 글
[LOB] Troll -> Vampire Write-up (0) 2019.02.26 [LOB] Orge -> Troll Write-up (0) 2019.02.10 [LOB] Darkelf -> Orge Write-up (0) 2019.02.10 [LOB] Orc -> Wolfman Write-up (0) 2019.02.09 [LOB] Goblin -> Orc Write-up (1) 2019.02.09 댓글