LOB - 15. giant -> assassin

2018. 7. 30. 15:30WarGame/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