본문 바로가기

HackCTF6

HackCTF) Simple_Overflow_ver_2 쉬운 Overflow다! 32bit이고 보호기법도 아무것도 걸려있지 않다! ida를 살펴보자 scanf("%[^\n]s")는 scanf가 \n까지 받겠다는거로 scanf로 공백을 받을 수 있게 해줍니다! 일단 data를 한 번 입력 받고 문자열의 인덱스만큼 반복문을 돌면서 0번 인덱스이면 그 문자의 주소를 출력해주네요! 그리고 반복문이 끝난 후 더 할 것인지 아니면 안할 것인지 정하게 해주네요 그러면 첫 번째 싸이클에 input의 시작주소를 알아내고 그 다음 싸이클에 shellcode를 넣고 ret를 첫 번째 싸이클에서 얻은 input의 주소로 덮어주면 될 것 같다 exploit을 짜기 전에 한 번 실행해보자 이렇게 보니 좀 위에서 설명을 부실하게 한 것 같네요...... 일단 원하던대로 주소가 출력되는.. 2022. 3. 10.
HackCTF) x64 Simple_size_BOF 일단 보호기법을 확인해보자! 이번에도 shellcode문제인 것 같다! ida로 살펴보자! 일단 gets로 bof가 터진다는 것을 확인했으니 한 번 실행해보자 알고보니 자살을 방지하는 아주 고마운 문제였다! 딱 보니 v4에 shellcode넣고 오버플로우로 ret에 buf의 주소값을 넣어서 실행하면 될 것 같다! exploit 좋다! 2022. 3. 10.
HackCTF) x64 Buffer Overflow 64bit라니 뭔가 좋다! 일단 당연히 64bit이고 Full RELRO랑 NX가 걸려있다! ida를 살펴보자! scanf에서 bof가 아주아주아주크게 터진다! 처음에는 안되는줄 알았는데 된다는 것을 알았다! RET에 이걸 덮어주면 될 것 같다! exploit nice~ 2022. 3. 10.
HackCTF) 내 버퍼가 흘러넘친다!!! 일단 파일은 32bit파일이고 아무 보호기법도 안걸려있네요! 바로 ida를 살펴보겠습니다! name은 전역변수인것 같다 name에 25byte짜리 shellcode넣어주고 get(s)로 ret를 name의 주소로 덮어주면 될 것 같다 (보호기법이 다 꺼져있어서 주소 다 고정입니다!) 쉽다! 2022. 3. 10.