본문 바로가기
반응형

LOB20

LOB Level 2 gremlin Level 2로 접속합니다. cobolt 파일을 이용하여 공격하라고 합니다. 소스파일을 보면 Level 1과 큰 차이점이 없습니다. 한가지 차이점이 있다면 Level1에서는 환경변수를 이용하지않고 바로 쉘코드를 삽입할 수 있었지만 여기서는 버퍼의 크기가 16바이트이므로 바로 쉘코드를 삽입하는데 무리가 있습니다. 환경변수를 이용하여 문제인 것 같습니다. gdb를 사용하여 메모리 구조를 그려보면 ret4 sfp4 buffer16 입니다. 이번에도 더미가 없습니다. 쉘코드를 환경변수로 올려주고 getenv로 주소값을 알아내어 공격코드를 작성합니다. ./cobolt `python -c 'print "\x90"*20 + "\xfd\xfd\xff\xbf"'` 2021. 8. 9.
LOB Level 1 gate ID : gate PW : gate (LOB는 telnet으로 접속합니다.) gremlin 파일을 이용하여 공격을 해야할 것 같습니다. 소스코드를 보면 256바이트의 배열 하나가 선언 되어있습니다. 그리고 strcpy가 보입니다. Level 1이라서 그런지 생각보다 간단한 문제입니다. gdb를 사용하여 보면 총 256바이트의 메모리가 할당된 것을 알 수 있습니다. (0x100) 메모리 구조를 그려본다면 ret4 sfp4 buffer256 이렇게 더미값이 없습니다. 공격방법을 생각하면 260바이트의 값을 nop으로 채워주고 ret부분에 환경변수로 등록해놓은 쉘코드의 주소를 넣어주면 되겠습니다. ./gremlin `python -c 'print "\x90"*260 + "주소"'` 쉘코드를 환경변수로 올려줍니.. 2021. 8. 9.
반응형