2016 EKOPARTY Fuckzing reverse
by St1tch문제바이너리는 pwn의 Fuckzing exploit문제와 완전히 똑같다.
afl fuzzer의 컴파일러로 컴파일 된 리눅스 바이너리이다.
실행을 시키면 libget_flag.so 가 없다고 실행이 되지 않는다.
ldd명령어로 보면 libget_flag.so 를 찾을 수 없다고 적혀있다.
libget_flag.so파일을 임시로 만들고 그 공유라이브러리안에 get_flag함수를 위의 구조에맞게 대충 만들어주면 된다.
나는 대충 이런 코드를 so파일로 만들었다.
gcc -fpic -shared get_flag.c -o libget_flag.so
를 이용해서 so파일을 만든 후
/usr/lib/x86_64-linux-gun/ 디렉토리에 임시로 복사해놓으면 에러가 발생하지 않는다.
그래프뷰를 보면 엄청 복잡해보이지만 규칙적인 구조로 되어있다.
입력받은 값의 각 글자에 대해 간단한 연산을 한 후 비교하는 그런 부분이 엄청 많은거 뿐이다.
사용자 입력은 300바이트를 read함수를 통해 받는다.
문제를 풀어보면 이 300바이트 중에 100바이트만 키값을 비교하는데 사용되고
나머지는 pwn문제에서 페이로드로 사용이 된다.
대회때는 세화가 바이너리를 수정해서 신선한 방법으로 문제를 풀었다
angr로 시도 해보니 angr로도 금방 풀리는문제였다. ㄷㄷ
avoid_list만 잘 해주면 빨리 답이나오는 그런문제였다.
블로그의 정보
튜기's blogg(st1tch)
St1tch