BOF(27)
-
HACKCTF - x64 Simple_size_BOF
전 문제와 똑같이 문제 이름 만으로 유추해보면 x64 BOF 문제같다. 실행시켜 보겠습니당. 자살방지 문제라고 해서 조금 깜짝놀랐네요 ㅋㅋ 실제로 문제 풀다가 약간 자살각이 서기는 했습니다. 함수를 보면 처음에 v4의 주소를 뿌려주고, v4에 값을 받고 끝나버립니다. 굉장히 허무한데요..? 보호기법을 확인하니 NX가 설정되어있지 않습니다. 따라서 v4주소를 받으니 1. 받은 v4주소를 저장해둔다. 2. v4에 값을 입력할때 shellcode를 입력한다 3. 리턴을 v4로 준다. 로 익스 코드를 짤 수 있습니다. 필자는 초반에 자살각이 슨 이유가 버퍼위치를 맞게 준거 같은데 안되서 삽질좀하다가, nopslid기법를 사용해서 해결하려고 하였습니다. 아래는 익스 코드입니다. 1 2 3 4 5 6 7 8 9 1..
2020.07.13 -
HACKCTF - x64 Buffer Overflow
문제 이름부터 전형적인 64bit BOF문제를 나타내는 것을 볼 수 있다. 실행은 입력한 값에 앞에 Hello 를 붙여주는 형식이다. NX가 켜져있으니 전에 했던 문제들처럼 shellcode를 직접 넣어서 푸는 문제형식은 아닐것이다. scanf 에서 입력제한을두지 않으니 기본적인 bof기법으로 RET를 덮으면 될듯한데 쉘의 위치를 찾으려 하니 마침 아래 함수가 보였다. 더미로 s[0x110]을 덮고 SFP[0x8] 추가해주고, 마지막 RET[0x8]
2020.07.10 -
HACKCTF - 내 버퍼가 흘러넘친다!!!
뻔한 BOF문제로 유추가 되니 일단 실행시켜보겠습니다. 별다른 출력없이 입력만 받고 끝나는걸 확인할 수 있습니다. main함수를 보면 9번째에서 gets에서 입력값에 제한을 두지 않으니 bof가 일어나는것을 확인할 수 있습니다. 그리고 여기서 함수 목록을 보면 별다른 직접 shell을 가져다 주는 함수를 발견할 수 없는데 어떻게 풀이를 할까 고민하다가 직접 쉘코드를 넣는게 가능할까 생각을 해봤더니 NX가 가능하니 쉘코드를 직접 넣으면 될거같네요. 즉 메인함수를 다시 확인하면 1. name에 쉘코드를 넣고 2. s를 bof시켜서 리턴을 name변수로 가게끔 하면 쉘을 얻을 수 있을 것 같네요. S의 크기는 보이는것처럼 0x14이고 SFP까지 고려해주면 아래와같이 페이로드를 작성할 수 있겠네요. 1 2 3 ..
2020.07.09 -
HACKCTF - Basic_BOF #2
가장 먼저 해야할 일은 역시 실행시켜보는 것 이상한 문구가 나와서 당황했습니다. 따라서 이 프로그램은 뭔가 넣으면 뭔가가 나오는 프로그램 인것을 알 수 있죠 더 이상은 모르니 IDA로 까보면 1. [7번줄] s에 0x85사이즈의 값을 받아넣는다 2. [6번줄] s값을 출력하는 함수의 주소를 v5에 넣는다 3. [8번줄] s값을 출력하는 함수 주소 실행 그럼 이제 어떻게 풀어야할지 생각을 해야하는데 그 전에 보호기법 확인해서 풀이방향을 좁혀보자. nx가 가능하니까 단순 bof로 쉘코드를 넣는건 불가능(짜피 버퍼 크기 딸려서힘듬) 그럼 ROP쪽이나 BOF에서 리턴주소 바꿔서 하는 가능성이 커보여서 함수들 찾아보는 중 에 초반에 나온 "하아하아하아하아"그 멘트를 찾고자 STRING을 봤는데 /bin/dash를..
2020.07.07 -
HACKCTF - Basic_BOF #1
오랜만에 포너블을 잡고 첫번째로 풀이한 문제 프로그램은 만나서 가장 먼저 해야하는일은 실행시켜보는 것 보아하니 값을 입력받고 그 값이랑 또 다른값인 체크 값을 보여주는 것 같다, IDA로 코드를 까봐서 무슨 동작을 하는 친구인지를 살펴보는게 좋을 것 같다. 코드를 보면 15번째에 쉘을 주는 코드가 있기에 15번째로 가려면 어떻게 해야할지가 관건이다 (10번째 분기문 통과 & 12번째 분기문 들어오기) 1. 10번줄 통과하려면 v5 값을 다른값으로 변조해주면 된다. 2. 12번줄에서 안으로 들어오려면 v5 값을 0xdeadbeef 로 넣어야한다. 정답이다 전형적인 BOF문제이다. 여기서 BOF로 익스플로잇을 하려면 s의 버퍼크기를 알아서 모두 덮고, 그 뒤에있는 v5에 0xdeadbeef를 넣어주면 된다...
2020.07.06 -
pwnable.kr - passcode
passcode문제는 점수가높아 뒤에 낮은것들을 먼저 풀고한 문제다
2018.08.25