시스템 해킹/LOB15 skeleton argv[1][47]==bf이어야 한다. stack destroyer이 부분에서buffer부터 0xbfffffff까지 RET부분을 제외한 나머지 부분은 모두 초기화 된다.buf보다 주소가 낮은 곳을 공격해야 된다.그곳이 바로! 공유라이브러리 이다. 우리는 LD_PRELOAD라는 환경변수를 이용할 것인데,LD_PRELOAD는 특별한 환경변수이다. 일반적으로 프로그램을 실행시키면 일반적인 공유 라이브러리를 로드한다.하지만 LD_PRELOAD를 정의해주면 프로그램 실행시 LD_PRELOAD에서 정의해준 라이브러리를 로드하게 된다.저 공유 라이브러리 영역에 우리의 데이터를 올릴 수 있게 된다. 프로르램이 동작할 때 메모리에 실행한 프로그램만 로드하는게 아니라 프로그램 내부 사용하는 함수들도 실행을 해야되서 전부.. 2016. 10. 30. vampire egghunter있으니까 에그쉘은 쓸 수가 없어argv[1][47]==\xbfargv[1]의 길이 2016. 10. 30. troll argv[1][47]=\xbf이어야 한다.argv[1][46]=\xff이면 안된다. 스택의 값을 밑으로밑으로 내려주어야 한다.argv인자값의 길이를 엄청 크게 준다. 그래서 argv[1]의 길이를 엄청나게 크게 주었다. 이렇게 esp가 밑으로 내려옴을 알 수 있다. 2016. 10. 30. orge buffer hunter로 buffer[]는초기화 된다argc==2이어야 한다egghunter로 에그쉘은 사용할 수 없다argv[1][47]=\xbf 이어야 한다.argv[1]의 길이는 계속 argv[0]의 주소가 바뀌어 할 수가 없었다. segmentation fault 계속 떠서 엄청 빡침ㄷㄷ 결국, 환경변수 부분에서 지워지지 않는 부분을 찾아서 그 부분을 이용했다.환경변수 부분은 주소가 바뀌지 않는다는데...??스택의 윗부분이기 때문이라고 한다. 왜 그런지 정확히 이해는 안간다..... 쉘코드가 포함된 파일 이름으로 troll을 심볼릭 링크를 시켜준다.이때 , 쉘코드는 \x2f가 포함되지 않은 쉘코드 \xd9\xc5\xd9\x74\x24\xf4\xb8\x15\xc3\x69\xd7\x5d\x29\xc.. 2016. 10. 29. darkelf argv[0]의 길이==77이어야 한다!egghunter있어서 에그쉘 사용불가argv[1]의 길이 2016. 10. 29. wolfman egghunter있으므로 에그쉘 사용불가 argv[1][47]==\xbf이어야 한다. argv[1] 2016. 10. 29. 이전 1 2 다음