level8
-
Level8 (orge -> troll)$ 시스템 해킹 $/Los Of BufferOverflow 2020. 1. 1. 14:24
이번에도 마찬가지로 소스코드를 확인해 보겠습니다. 소스코드를 확인해 보면 if(argc != 2) 라는 조건이 추가 되어서 argv[2]을 사용할 수 없습니다. 결국 argv[0] , argv[1]만을 사용 해야 하고, 맨 아래에 memset(argv[1], 0, strlen(argv[1]))을 보면 argv[1]이 초기화 됩니다. 그렇기 때문에 쉘 코드를 삽일 할만한 곳이 argv[0]에만 가능합니다. 그래서 심볼릭 링크를 파일에 걸어서 실행 하는 방법으로 문제를 해결 해야 할 것 같습니다. 심볼릭 링크가 걸리지 않습니다. 그 이유는 삽입한 쉘 코드에 / 인 \x2f가 들어 있어서 경로에 지장이 생기기 때문입니다. 그래서 \x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\..