분류 전체보기
-
-
-
-
Christmas CTF 2017 bookstorePwnable/CTF 2017. 12. 30. 22:21
여태까지 C++ 경험이 적어서 문제를 잡았을때 너무 어려웠던문제였다 .. 123456789101112131415161718publisher { string name string description } book {string name string description int price publisher* Publisher }cs 구조체는 위와같다. 여기서는 string 객체를 이용하였을때 힙으로 할당을하고 book 구조체를 operator new를 할때 publisher 포인터부분을 초기화를 하지 않아서취약점이 생기는문제였다.string 객체는 16byte 정도입력하면 0x31로 할당을하고 16byte를 또 더하면 31byte힙을 free시키고 0x41로 할당을하고 또 사이즈가 모자르다고 생각되면 다시 ..
-
Christmas CTF 2017 infinite catPwnable/CTF 2017. 12. 30. 22:14
init_array 주소에서 nyang함수를 호출하는데 함수에서는 mmap을 이용하여서 7권한을 이용하여서 주소를 맵핑해주고 paper 전역변수에 맵핑 주소를 넣어준다. 7 권한이면 4 2 1 순서대로 실행 쓰기 읽기 순서다. 여기서부터 누가봐도 쉘코드로 쉘을따는 문제라는것을 예상할수있다. 이전에 read_int로 정수입력을 받고 매개변수로 받는다. 그 매개변수 만큼 rand를 돌리면서 아까 읽기권한이 있는 맵핑된주소에 rand값을 넣는데 buf에 0x34만큼입력을 받는다.0x34면 v4 함수포인터, seed, i, sfp,ret 6byte 오버플로우가된다.한번에 모든 쉘코드가 랜덤으로 짜질확률은 매우 낮기때문에 한개한개 만들어나갈것이다.count로 전역변수로 입력이되기때문에 main으로 돌아갔다가 1b..
-