-
해커스쿨 LOB level3System/HackerSchool LOB 2019. 7. 14. 00:06
bash2 안하고, 왜인지 모르겠는데 환경변수 shell에서 \x90을 100번이 아닌 40번만 추가해야 된다는 사실을 몰랐으며, 인자가 아닌 입력문 그대로 stdin으로 받는다는 사실을 모르고 삽질하다가 또 하루가 지났ㄷr
이번 문제는 small buffer과 stdin이 쓰인 문제라고 그랬죠 16바이트에 sfp 4바이트 더 넘겨서 쉘코드 실행시키면 될거 같은데..
근데 이번엔 gets() 함수가 쓰여서요 그것만 조심해서 코드 작성하면 풀릴 거 같아요
전처럼 환경변수에 쉘코드 저장을 하는데 여기서도 변수가 있는데 "\x90"*40으로 해줘야 하고
"\x90"*20으로 하고, 전처럼 ./(파일) 다음에 `python 형식을 쓰지 않고 (python 형식 뒤에 ./(파일) 형식으로 입력해야 이번 문제가 풀립니다
여기서 궁금한 게 두 개 있는데
1. 왜 쉘코드 환경변수 지정 과정에서 "\x90"이 40개를 써야 풀릴까?
2. gets(표준 입출력)을 사용할 때와 printf함수를 사용할 때와 페이로드 작성 방식이 다를까?
조만간 찾아서 다시 이해해봐야겠습니다..
2019.7.14
'System > HackerSchool LOB' 카테고리의 다른 글
해커스쿨 LOB level6 (0) 2019.07.14 해커스쿨 LOB level5 (0) 2019.07.14 해커스쿨 LOB level4 (0) 2019.07.14 해커스쿨 LOB level2 (0) 2019.07.12 해커스쿨 LOB level1 (0) 2019.07.12