PWN8 HackCTF) Basic_FSB 솔직히 처음에는 FSB가 뭔지 몰라서 무서웠다........ 일단 풀어보자 일단 보호기법은 아무것도 걸려있지 않다 IDA로 한 번 살펴보자 이것도 있다! 일단 제목에 대해서 찾아보고오니 format string buf라는 것에 대해 알게되었는데요 근데 format string buf는 제가 뭔지 몰라서 조금 구글링을 하고 완벽하게 배우고 돌아왔습니다 하지만 이 블로그에서는 문제 풀 때 기법 설명은 하지 않으니 알아서 찾아보시는걸 추천합니다(원래 자신이 스스로 찾아서 배워야합니다!) 요련식으로 넣으니 제가 맨처음 넣은 부분이 어디인지 나오네요 그럼 처음부분에 printf의 got를 넣어주고 그 다음 got을 넣어준 부분에 맟춰서 %n을 넣어주고 그 전 스트링에 flag함수의 주소-4자리 만큼 정수형을 출력.. 2022. 3. 10. HackCTF) Basic_BOF #2 이번에 풀어볼 문제는 Basic_BOF문제다 바로 ckecksec로 확인! 저번 문제랑 다를게 없다 IDA를 살펴보자! 정확히 5바이트만큼 bof가 난다 sup이 뭔지 확인해보자 그냥 puts(s);였다 한 번 옆에 함수들을 찾아보니 그것이 있다! gdb로 확인해보자 일단 rbp-0x8C(140)으로 ret를 덮지 못할 것 같다 그럼 저 목표라고 써져있는 v5를 shell함수의 주소로 덮어주면 될 것 같다! exploit 다 했는데 중간에 p.sendline(payload)를 안넣고 30분간 헤멧다 ㅠㅠㅠㅠㅠㅠ 2022. 3. 9. HackCTF) Basic_BOF #1 일단 checksec로 무슨 보호기법이 걸려있는지 보도록 하자 일단 Canary와 PIE가 안걸려있음을 알 수 있다 일단 윈도우로 돌와와서 IDA로 확인을 해보자 67305985 = 0x4030201 딱봐도 s에서 bof을 일으켜 check값을 0xDEADBEEF로 바꿔주면 될 것 같다! bof가 더 많이 일어났다면 그냥 ret에 system("/bin/dash")를 넣어주면 됬었다 일단 main+47쯤에 bp를 걸고 스택을 확인해보자 확인해보니 check인 0x4030201가 있고 더 위에 내가 입력한 0x34333231 1234가 있다 check는 ebp-0xC이고 s는 ebp-0x34이니 40을 더미로 채워주고 0xdeadbeef로 채워주면 될 것 같다! 원래는 거꾸로 써줘야하지만 우리의 폰툴은 그.. 2022. 3. 9. rp++ 사용법(x86-x64) 일단 다들 rp++에 대해 알고 왔을 수도 있지만 모르는 사람을 위해 설명을 하도록 하겠다 rp++은 포너블에서 code gadget의 주소를 알아내기 위해 많이 사용하는 툴이다. 더 알고 싶으면 다른 블로그를 찾아보도록 해라 그 다음 사용법을 설명하기 전에 https://github.com/0vercl0k/rp/releases Releases · 0vercl0k/rp rp++ is a fast C++ ROP gadget finder for PE/ELF/Mach-O x86/x64/ARM binaries. - 0vercl0k/rp github.com 로 가서 x64버전은 최신 릴리스에서 다운받고 x86은 32bit가 안나오기 시작한지 오래되서 가장 옛날 버전에만 있는듯하니 가서 다운받으면 된다 리눅스에서 .. 2022. 2. 17. 이전 1 2 다음