본문 바로가기

시스템2

[LOB] 2번 cobolt 2번 시작해보자 코드를 보니 buffer의 크기가 16byte이고 저번문제처럼strcpy함수이후에 buffer에 값이 들어가는 것을 볼 수 있다. 이렇게 되면 buffer+sfp 해서20byte가 들어가야한다.즉, 내가 가지고 있는 쉘코드를 넣기에는 너무 작은 크기이다..그래서환경변수를 이용하자 먼저 쉘코드를 환경변수에 등록 해놓고 저번에 1번 풀 때 사용한 주소를 받아오는 C코드를 이용하자 실행해서 shellCode를 실행할 수 있는 주소0xbffffc21을 얻었다. 이걸 바탕으로 작성해서 해봤는데안된다...ㅎ 왜그런지 모르겠어서다른 방법을 생각하던중에저번에 선배가 동아리때 shellcode를 뒤에 삽입하는 방법을 알려주셨는데그게 떠올랐다바로 해보자 먼저 입력되는 버퍼의 주소를 알아야 하기에strcpy.. 2017. 10. 15.
[SYSTEM] BOF(버퍼 오버 플로우)란 BOF(Buffer Over Flow) 메모리에 할당된 버퍼의 양을 초과하는 데이터를 입력하여 프로그램의 복귀 주소(return address)를 조작, 궁극적으로 해커가 원하는 코드를 실행한다. ▶이런식으로 8칸의 메모리가 4칸 짜리 버퍼가 있을 때 , 버퍼를 초과하는 값을 입력하면 버퍼 이후의 값이 바뀌게 된다. BOF공격원리는 내가 생각하기에 이 그림으로 설명이 가능할 거 같다Buffer부터 값을 채워 다 채운후 SFP까지 값을 채운뒤에 RET까지 접근하도록 넘치게 값을 넣어주면RET = POP eip이기 때문에 다음 실행해야 할 명령어가 존재하는 메모리 주소를 변경하여해커가 원하는 명령을 실행 할 수 있도록 해준다. 2017. 10. 13.
반응형