HackCTF(78)
-
HackCTF - ChildHeap
보호되어 있는 글입니다.
2021.07.02 -
HackCTF - babyfsb
문제는 위와 같습니다. ida를 통해서 문제를 확인해보면 위와 같은 구조를 가지고 있습니다. 전형적인 FSB문제입니다. 1. 어떻게 main으로 반복할 것인가 2. 어떻게 canary를 처리할 것인가 3. 어떻게 system주소를 가져올 것인가 세가지에 대해서 생각해보면 됩니다. 1번의 경우 canary를 덮은 경우 __stack_chk_fail함수를 호출하게 되는데 이 함수의 got를 main함수로 덮으면 됩니다. 2번의 경우 1번을 위해 사용하면 됩니다. 3번의 경우 main으로 복귀하는 루프문이 만들어진 이후 __libc_start_main인 main의 ret은 fsb를 이용해서 leak해서 풀이가 가능합니다. 아래는 exploit 코드입니다. from pwn import * #r = process..
2021.06.26 -
HackCTF - World Best Encryption Tool
World Best Encryption Tool 문제입니다. 실행해보면 뭔가 암호화해서 출력해주는 프로그램 같습니다. nx와 카나리가 있네요. main함수를 보면 14번줄, 20번줄에서 bof가 발생합니다 17번째에서 src를 암호화 한 부분을 dest로 덮어씌우니 여기서 잘 활용하면 canary_leak이 가능할 거같네요. 그리고 Yes로 다시 메인으로 가서 libc_leak해서 oneshot으로 터트리면 될 것 같습니다. 페이로드는 아래와 같습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 5..
2021.01.11 -
HackCTF - Register
이를 실행하면 문제 이름처럼 정말 정직하게 register을 받는다. main함수쪽을 보면 alarm으로 5초 후에 signal을 발생시킨다. signal이 발생할때 인자들은 system("/bin/sh") or execve("/bin/sh")형식으로 만들어 주면 shell을 획득할 수 있을 것이다. 즉 요약하면 sysrop인데 조금 편하게 풀 수 있는문제이다. 1. read systcall을 이용해서 bss 영역에 "/bin/sh"삽입 2. execve syscall 을 이용해서 bss를 인자로 전달 페이로드는 아래와 같다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 from pwn import ..
2021.01.10 -
HackCTF - RTC
return에서 read로 0x200을 읽기 때문에 bof가 터집니다. 간단히 보면 rop로 풀이가 가능할 것 같습니다. 하..지..만 read, write를 사용해서 rop를 하려면 pop rdi, pop rsi, pop rdx 가젯이 있어야하는데.. 가젯이 없으니 문제 이름과 같이 RTC를 사용해서 풀이해보겠습니다. 간략하게 정리하면 이 부분을 이용해서 가젯을 조작하고, 이 부분을 이용해서 함수를 호출하면 됩니다. payload는 아래와 같습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51..
2021.01.08 -
[보호]HACKCTF - RSA3
문제화면이 입니다. e가 보통 65537 이거나 그런데, 너무 작은 3이여서 구글링하다보니 코드 이어서 풀었습니당. from Crypto.Util.number import * from gmpy2 import * n = 102836818391932761260971894494318044697619400952954718883982344474794549662847639029402572622708962186028855918492193292954160541972343268817797472635019824651029575085637054326339506513604929631513743876190706567045549719926490228582866862444774585182198113439402080169229375..
2020.12.31