goblin
-
[LOB] goblin > orcWargame/Lord of Buffer Overflow 2021. 5. 24. 17:09
[LOB] goblin > orc 먼저 소스코드를 보며 분석해보자. 우선 이 부분에서 환경변수를 0으로 초기화시키기 때문에 쉘 코드를 환경변수에 넣어서 쉘을 실행시키는 것이 불가능하다. 하지만 buffer가 40byte로 쉘 코드가 들어가기 충분하기 때문에 이곳에 쉘 코드를 넣어 실행시키면 될 것 같다. 마지막으로 이부분에서 인자의 48번째 자리가 '\xbf'가 아니면 종료시켜버리기 때문에 인자의 48번째 자리를 신경 써야 한다. 위의 두 부분만 신경 쓰면 쉽게 풀 수 있을 것 같다. 먼저 orc파일을 복사한 후 Segmentation fault (core dumped)를 일으켜 core 파일을 분석해보자. 현재 스택이 아래와 같은데 buffer [40byte] | sfp [4byte] | ret [4b..
-
[LOB] cobolt > goblinWargame/Lord of Buffer Overflow 2021. 5. 22. 21:54
[LOB] cobolt > goblin 소스코드를 보니 이번에는 gets() 함수에서 취약점이 터지는데 gets() 함수도 strcpy()와 마찬가지로 문자열 길이 검사를 하지 않아 Buffer Overflow가 일어난다. 이번 문제도 쉘 코드를 아래와 같이 사용하면 될 것 같다. buffer [16byte] | sfp [4byte] | ret [4byte] | shell code 이전 문제들을 풀다 보니 자꾸 메모리 주소가 바뀌는 것 같아 segmentation fault (core dumped)를 일으켜서 처음부터 core 파일로 분석했다. 이런 식으로 ret위치가 0xbffffb10 인 것을 알 수 있었다. 그럼 이제 공격해보자. 이번에는 메인 함수의 매개변수가 아니라 gets()로 받기 때문에 (..