troll
-
[LOB] troll > vampireWargame/Lord of Buffer Overflow 2021. 7. 5. 11:47
[LOB] troll > vampire 소스코드를 보면 20번째 코드가 바뀌었는데 0xbfff????으로 시작하는 곳을 사용할 수 없다. 그럼 어떻게 하냐 dummy를 0x10000 만큼 채워서 0xbffe????에 쉘 코드를 넣고 실행하면 된다. gdb로 확인 해봤을 때 주소가 0xbffe로 내려온것을 볼 수 있다. 이 공간에 쉘 코드를 넣고 ret를 대충 0x90이 있는 곳으로 바꿔주면 쉘이 실행된다. vampire / music world
-
[LOB] orge > trollWargame/Lord of Buffer Overflow 2021. 5. 28. 11:44
[LOB] orge > troll 바로 메인 함수부터 보면 이전 문제들과 같이 환경변수, 버퍼를 초기화하고 argv[1]길이 검사, argv[1]의 48번째가 \xbf 가 되어야 한다. 그리고 이 부분이 추가되었는데 메인 함수 인자의 개수를 확인하여 인자가 2개가 아니면 종료시킨다. 그래서 argv[2]에 쉘 코드를 넣어 실행시키는 것이 불가능하다. 그럼 쉘 코드를 어디에 넣어주냐! 바로 argv[0] 즉 파일 명을 쉘 코드로 주면 된다. 하지만 원본 파일은 권한 문제로 파일명 변경이 불가능하기 때문에 파일명을 쉘 코드로 cp 해서 심볼릭 링크를 걸어 실행해주면 된다. 파일명을 쉘 코드로 하여 cp 하고 core dumped를 일으켜 argv[0]의 주소를 구해보았다. 여기서 주의해야 할 점은 쉘 코드에..