728x90 반응형 해커스쿨3 해커스쿨 FTZ level18 (HackerSchool) 풀이 hint를 보자 처음 보는 것들이 나왔다. sd_set? FD_ZERO, FD_SET, select, FD_ISSET?? 검색해 보자. blog.naver.com/tipsware/220810795410 fd_set, FD_SET, FD_ZERO에 대하여 소켓 프로그램을 하다 보면 자신이 생성한 소켓에 데이터가 수신되었는지 또는 연결해서 데이터를 주고 받... blog.naver.com 여기 형님이 아주 제대로 정리해 주셨다👍 FD_ZERO(&fds) - fds 스트럭쳐(32bytes == 1024bits)를 0으로 초기화. - fds 스트럭쳐는 1024칸의 배열이라고 생각하면 편하다. FD_SET(STDIN_FILENO,&fds) - STDIN_FILENO 가 뭐지? - 다음 내용을 보며 좀 더 알아보자.. 2021. 2. 12. 해커스쿨 FTZ level17 (HackerSchool) 풀이 힌트를 보자 level16과는 다르게 shell() 함수가 없다. 대신 uid를 level18로 바꿔주고 call() 을 하는 부분이 있다. 그렇다면 call() 함수가 printit() 함수를 불러오는게 아닌 shell을 얻는 코드로 덮어씌우자. 1. 환경변수 등록하기(bash 쉘을 띄워주는 쉘코드) export TRAP=`python -c 'print "\x90" * 100 + "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x31\xd2\xb0\x0b\xcd\x80" ' ` 입력 후 export 입력하여 잘 등록되었는지 확인 마지막 부분에 위와 같이(?) 되어있다면 잘 입력된 것이다. 이게 맞나 싶은 분들이 .. 2020. 12. 28. 해커스쿨 FTZ level16 (HackerSchool) 풀이 바로 hint부터 보자 level17의 uid로 쉘을 열어주는 shell() 함수가 있고 printit() 함수가 정의되어 있다. 하지만 main()에는 printit() 함수만 call() 한다. fgets() 함수의 BOF 취약점을 이용해서 call() 하는 부분에 shell() 함수의 주소값을 덮어씌워보자. 1. call() 함수가 어디에서 실행할 함수를 불러오는지 주소값 알아내기 gdb를 해보자. set disassembly-flavor intel 코드가 뭔지 궁금한 사람 더보기 ------------------------------------------------------------------------------------------------ set disassembly-flavor int.. 2020. 12. 28. 이전 1 다음 728x90 반응형