troll
-
Level9 (troll -> vampire)$ 시스템 해킹 $/Los Of BufferOverflow 2020. 1. 1. 14:25
코드를 확인해보면 argv[1][46]가 \xff면 안된다는 구문이 추가가 되어있습니다. \xff\xbf 를 피하기 위해서 NOP Sled 를 이용해서 쉘코드 중간에 NOP를 10만개 정도 넣어 보겠습니다. 위와 같이 core dump를 생성하고 쉘코드 앞에 적은 \x90 주소중 아무거나 하나 정해서 RET에 적으면 클리어가 됩니다. login : vampire password : music world
-
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\..