darkelf
-
[LOB] darkelf > orgeWargame/Lord of Buffer Overflow 2021. 5. 27. 23:01
[LOB] darkelf > orge 바로 소스코드를 보면 이곳이 바뀌었다고 나와있다. argv[0]의 길이가 77이어야 한다. argv[0]에는 첫 번째 인자 즉 파일을 실행할 때 들어가는 ./orge 이 부분이다. 이 부분의 길이가 77이 되어야하는건데 .///////orge 이런 식으로 길이를 늘려주면 된다. 즉 /를 72개 넣고 실행해주면 된다. 나머지는 이전 문제와 같은 방식으로 풀이하면 된다. core dumped 일으키고 바꿔서 해봅시당. orge / timewalker
-
[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 / ..