티스토리 뷰
이번엔 조금 특이한 조건이 붙었다. argv[1][46]의 값이 ff이면 안된다는 조건입니다.
즉, 우리가 지금까지 변조한 argv[2]의 주소가 0xbfff???? 이었다면 이번엔 0xbf?????? 이어야 한다는 것 입니다.
여기서 스택은 이렇게 구성 될 것 입니다.
여기서 argv[2]에 nop+shellcode를 넣어서 실행 할 것이기 때문에 argv[2]의 주소가 0xbffe????으로 시작하게 만들어 줄 것입니다.
gdb로 vampire를 디버깅 해 보았습니다.
strcpy 함수 실행 직후인 main+137에 breakpoint를 걸어주었습니다.
argv[2]에 A를 65536개를 넣어주고 프로그램을 실행했습니다.
메모리를 확인해 보니 이렇게 구성되어있다. 그러면 이제 0xbffe로 시작하는 주소중 하나에 nop과 쉘코드를 넣어주면 될 것입니다.
익스플로잇 했습니다.
'Pwnable > Lob' 카테고리의 다른 글
Lob skeleton(11) (0) | 2018.01.22 |
---|---|
Lob vampire(10) (0) | 2017.12.22 |
Lob orge(8) (0) | 2017.12.22 |
Lob darkelf(7) (0) | 2017.12.20 |
Lob wolfman(6) (0) | 2017.12.20 |
댓글