본문 바로가기

pwn43

Look at Me 1. Mitigation 이번 문제는 정적 링킹이 되어있는 문제여서 내부에 많음 함수와 가젯들이 있을 것 이다. 2. 문제 확인 입력을 받고 종료를 한다. 3. 풀이 문제를 IDA로 분석해 보면 look_at_me 함수에서 gets로 입력을 받는데 BOF가 일어난다. 그러면 쉘 코드를 사용을 못하니 ROP를 하면 될 것이다. ROP를 하기 위해 system 함수를 찾아보니 system 함수가 없다.. 그래서 찾아보니 mprotect라는 함수가 있다. mprotect int mprotect(void *addr, size_t len, int prot) 메모리로 매핑된 영역의 보호 모드를 변경할 때 사용되는 함수 매핑된 메모리 보호 모드는 mmap 함수로 메모리 매피응ㄹ 수행할 때 초깃 값을 설정한다. add.. 2021. 3. 21.
Random Key 1. Mitigation 메모리 보호기법은 GOT Overwrite가 가능하고 실행 권한이 없다. 2. 문제 확인 프로그램을 실행시키면 key를 입력하라고 나오며 입력을하면 Nah...라고 출력한다. 3. 풀이 IDA를 통해 분석을 해보면 time(0), srand(), rand() 함수가 있고 키를 입력 받는다. v5와 v4가 같아야만 플래그 값을 출력 해준다. srand 는 rand의 seed값을 지정해주고 rand함수는 srand가 지정해준 seed값을 바탕으러 난수를 생성한다. time 함수를 NULL로 받으면 1970년 1월 1일 00시 기준으로 현재까지 흐른 시간의 초를 나타내준다. 초는 멈추지 않고 계속 흐르니깐 srand(time(NULL))을 설정하면 난수는 실시간으로 변경된다. 그러면 .. 2021. 3. 21.
cmd_center 보호되어 있는 글 입니다. 2021. 3. 21.
validator 보호되어 있는 글 입니다. 2021. 3. 21.