지난번 글의 아이디와 비밀번호를 입력해봅시다! cobolt인데요! 이번엔 버퍼의 크기가 16이고 지난번과 조건이 같습니다! 16이면 쉘코드를 넣을 수가 없겠죠?? 그래서 환경변수를 설정해보겠습니다! shellcode를 만들기 위해 파일을 만들어 줍니다! 그후 export ShellCode=`python -c 'print("\x6a\x0b\x58\x99\x52\x66\x68\x2d\x70\x89\xe1\x52\x6a\x68\x68\x2f\x62\x61\x73\x68\x2f\x62\x69\x6e\x89\xe3\x52\x51\x53\x89\xe1\xcd\x80")'` ShellCode에 쉘코드를 넣어주고 gcc -o ShellCode ShellCode.c를 하여 ShellCode의 주솟값을 알아낼 겁니다! 0..
처음은 gate/gate로 로그인을 해줍니다! gremlin과 gremlin.c파일이 있는데요! gremlin은 접근 권한때문에 건드리지 못할거라서 gcc -o gremlin2 gremlin.c 를 통해 gremlin2를 gdb해줘야됩니다! 이렇게 grmelin2가 생겼습니다! 일단 buffer는 256바이트의 크기를 가지고있다는 것을 알 수 있고 strcpy()함수를 이용하는 것을 알 수 있습니다! 이때 strcpy함수가 작동 후 버퍼에 값이 들어간다는 사실을 알 수 있는데요 여기서 strcpy의 취약점! 길이검사를 하지 않는다는 점을 이용해 버퍼오버플로우를 발생시켜볼겁니다! 일단 gdb를 해줍시당 strcpy함수가 main+54에서 호출이 되기 때문에 저기에 브레이크 포인트를 걸어줍니다! 브레이크를 ..