LOB - 15. giant -> assassin
2018. 7. 30. 15:30ㆍWarGame/LOB
어느때와 다름없이 먼저 로그인을 합니다.
당연히 소스코드를 열어봅니다.
예전에 봤던 문제들하고 비슷한 유형이네요.
이번에는 리턴값 시작이 "\xbf", "\x40"이 아니여야하네요!
그리고 가장 중요한!! 저희가 넣을 수 있는 버퍼의 최대값이 없다는 점입니다.
buffer와 sft는 초기화가 되지만 그 뒤는 저희의 맘대로니까요!!(grin)
그럼 argv[2]에 인자를 넣어주고, 그 값이 어디로 가는지를 찾아봅시다!
위의 곳으로 가네요! 하지만 리턴주소를 보면 "\x90\xfa\xff\xbf"로 향해야하는데
조건에 맞아서 종료되게 됩니다!
조금 돌려서 생각해보니 리턴주소를 자기 자신으로 하면 리턴을 한번 더 실행하니 그 뒤에 우리가 원하는 ret주소를 입력하면 무난히 통과할 것 같습니다!
리턴주소를 찾기위해 disas main을 하고,
이런식으로 덤프값 + 리턴주소 + 쉘코드주소 + 쉘코드 로 해주면 됩니다.
그런데 segmentation fault core dump가 뜨는군요. 주소값이 잘못되었나봅니다.
코어 분석해서 리턴주소 수정해주고
exploit!!
success~(grin)
'WarGame > LOB' 카테고리의 다른 글
LOB - 17. zombie_assassin -> succubus (254) | 2018.07.31 |
---|---|
LOB - 16. assassin -> zombie_asssassin (264) | 2018.07.30 |
LOB - 14. bugbear-> giant (277) | 2018.07.30 |
LOB - 13. darkknight-> bugbear (256) | 2018.07.30 |
LOB - 12. golem -> darkknight (277) | 2018.07.30 |