if(argc) exit(0); 의 조건을 우회하는 방법을 몰라서 한참 헤맸다
execve함수를 통해, args는 NULL로 전달하고 env를 전달
arr[idx] 는 arr base + datatype*idx 로 계산 되기때문에
argv가 없으면 argv[3]을 env[3]으로 받아들이게 된다.
환경변수를 통해 전달하기 때문에, 메모리 값이 뒤죽박죽? 그냥 조금만 바꿔도 크게 바뀌었다
정확한 FSB 공격을 하기 힘들었던 부분.. 밑도 끝도 없는 삽질로 공격에 성공했다.
쉘코드를 환경변수에 올리고, 그 주소를 exit@got에 덮어씌우는 방법 사용
메모리가 계속 섞이길래 그냥 쉘코드 앞에 nop을 화끈하게 10만개 넣어줬다, 그리고 그냥 삽질해서 성공시킴..
'System Hacking > vortex' 카테고리의 다른 글
overthewire :: Vortex level6 by ORANG (0) | 2014.10.23 |
---|---|
overthewire :: Vortex level5 by ORANG (0) | 2014.10.23 |
overthewire :: Vortex level3 by ORANG (0) | 2014.10.20 |
overthewire :: Vortex level2 by ORANG (0) | 2014.10.20 |
overthewire :: Vortex level1 by ORANG (0) | 2014.10.20 |