wolfman
-
[LOB] wolfman > darkelfWargame/Lord of Buffer Overflow 2021. 5. 25. 10:06
[LOB] wolfman > darkelf 소스 코드를 먼저 보면 지난 문제와 동일한데 아래 부분이 추가되었다. 메인 함수 첫 번째 인자의 길이 검사가 48보다 크면 프로그램을 종료한다. 그래서 쉘 코드를 ret 뒷부분에 넣을 수 없다. 여기서 생각할 수 있는 것은 2번째 인자에 쉘 코드를 넣는 것이다. 2번째 인자에 쉘 코드를 넣고 ret에 2번째 인자의 주소를 넣으면 된다. 이번에도 core파일로 2번째 인자의 주소를 알아내 보자. 42가 들어간 부분이 2번째 인자의 주소가 된다. payload는 아래와 같다. dummy [44btye] | ret [4byte] | 공백 | shell code [25byte] core 파일을 확인해보자 ret 주소를 0xbffffc34로 해봅시다. darklef / ..
-
[LOB] orc > wolfmanWargame/Lord of Buffer Overflow 2021. 5. 24. 17:46
[LOB] orc > wolfman 이번 문제도 소스코드를 보니 저번 문제와 비슷한 것 같다. 저번 문제에서 추가된 게 이 부분인데 buffer를 0으로 초기화 시키는 것 같다. 쉘 코드가 들어가기에 buffer의 크기가 충분하지만 초기화되기 때문에 쉘 코드를 ret 뒷부분에 넣어서 쉘을 실행시키면 될 것 같다. payload는 아래와 같다. dummy [44byte] | ret [4byte] | shell code [25byte] 이번에도 core 파일을 통해 쉘 코드가 위치할 주소를 알아보자 기존에는 cp 할 때 wolfman1 이런 식으로 기존 파일명에 1을 붙여서 cp 했는데 파일명의 길이를 맞춰 주어야 메모리 주소가 똑같이 복사되는 것 같다. bf가 들어간 0xbffffc70부분이 ret의 주소..