오랜만에 LOB로 글을 올립니다. 10월달은 계속 대학면접이라 시간이 많이 없었습니다.;;;
그래도 합격발표가 11월 초에 난다는 것과 마지막 면접날이 11월 말이라.... 이제 운동이나 밀렸던 기록이나 올려야죠
LOB는 일단 빨리 끝내고 싶어서 풀이보면서 끝냈습니다.(어차피 그러지 않았더라도 풀이는 봤겠지만요...)
풀이를 봐도 실제 메모리 주소의 차이때문에 core dump보면서 풀어야 됬었지만 풀때 안나와서 뭐지...하고 있었는데
제가 복사한 파일에만 core dump가 뜨는걸 나중에 알아서 다시 풀어야되는 문제들도 몇 문제 있다죠...
일단은 차차 올리도록 하겠습니다.
이번에는 egghunter라고 환경변수를 초기화 해주는 함수가 있어 에그쉘의 사용은 안될거 같습니다.
memset함수로 완전 초기화 해버리네요....
일단 분석을 위해 tmp디렉에 파일을 복사했습니다.
저는 원래 buf공간이 충분하니 여기에다가 shellcode를 넣고 RET주소를 buf로 덮어씌울려고 헀지만
풀이에서는 argv[2]라는 신박한 공간을 사용해서 익스를 진행해서 그방법을 사용해 볼려고 합니다.
먼저 argv[]는 입력값에 따라 용량(?)이 변하기 때문에 argv[2]의 주소를 구하기 위해서는 최대한 비슷한 익스코드를 입력할
필요가 있습니다. argv[1]에는 \xbf를 argv[2]에는 \x90을 넣어줬습니다.
90부터 시작하는 주소가 argv[2] 시작주소 라고 할 수 있는데요. 주소 차이가 날 수 있으니 0xbffffc61주소를 사용했습니다.
나가서 bash2로 바꿔줍니다.
깔끔하게(?) 쉘을 얻었고요
성공~! 오늘은 여기까지 하겠습니다. 무리하게 올리는것 보다 하루에 하나씩 올릴려고 합니다ㅎㅎㅎ
'포너블 > Lord Of BOF' 카테고리의 다른 글
LOB 6번 wolfman (0) | 2017.11.02 |
---|---|
LOB 5번 orc (0) | 2017.10.31 |
LOB 3번 cobolt (0) | 2017.10.02 |
LOB 2번 gremlin (0) | 2017.10.01 |
LOB 1번 gate (0) | 2017.09.29 |