전체 글
[Pwnable] BOF_PIE
오늘은 BOF_PIE라는 문제를 풀어보겠습니다 ! 우선 mitigation 체크를 해봅시다. NX bit와 함께 PIE가 Enabled 되어 있네요 그래서 문제 이름이 BOF_PIE인가 봅니다 문제를 풀기 앞서 PIE에 대해 간단히 공부하여 봅시다. PIE (Position Independent Executable) 위치 독립 코드로 이루어진 실행 가능한 바이너리 (위치 독립 코드 : 실행할 때마다 매핑되는 주소가 어디든지에 상관없이 실행되는 파일) → 바이너리의 주소를 랜덤화하여 바이너리의 특정 주소의 값을 수정하는 것과 같은 공격을 방어한다. 이런 보호 기법이라고 합니다.. 제가 이해한 느낌대로 설명을 해보자면 Non-PIE 상태에서는 주소가 offset값으로 mapping 되어 나오지만 PIE상태에..
파이-썬 [3]
class math : def __init__(self): self.one = 0 self.two = 0 self.sum = 0 def Plus(self): self.sum = self.one + self.two return self.sum def Minus(self): self.sum = self.one - self.two return self.sum def Compare(self): return self.one > self.two what = math() what.one = int(input()) what.two = int(input()) print(what.Plus()) print(what.Minus()) print(what.Compare()) ಠ_ಠ
[Pwnable] Offset
이번에는 offset 문제입니다. 문제를 풀기 전에 offset에 대해 간략히 정리를 하겠습니다 offset이란? '어느 주소와 다른 주소와의 거리를 나타내는 값' 라고 되있습니다. 문제를 풀면서 offset에 대해 익혀보겠습니다 Mitigation을 체크를 해봤는데 오랜만에 보는 초록색 친구들이 있네요 굳이 안나와도 되는데....👀 무슨 Function을 부르고 싶은지를 묻고 입력을 받은 후 종료되는 Binary입니다. IDA로 열어보겠습니다 Which function would you like yo call? 이라는 문자열을 출력하고 gets로 S라는 변수에 입력을 받습니다 select_func라는 함수가 있습니다. strncpy로 문자열을 복사하는데 dest라는 변수는 0x2A만큼의 Buffer을 ..
[Pwnable] Simple_Overflow_ver_2
이번에도 BOF 문제이군요 Mitiagtion 체크 Data를 입력받고 주소 값 출력후에 한 글자씩 띄어서 출력합니다. 그 후 반복 여부를 묻는 간단한 Binary 파일 같습니다. IDA로 열어보겠습니다. BOF 문제인 만큼 BOF가 터지는 부분을 찾아야겠죠? 처음 변수 S에 __isoc99_scanf로 입력받는 부분에서 length 체크를 해주지 않아 BOF가 터질 듯 합니다🙆♀️ 전 문제와 굉장히 유사하게 실행시켰을때 나오는 Buf Addr에 ShellCode를 올린 후 ret에 Buf Addr을 넣으면 될거 같습니다. 전 문제와 굉장히 유사하기 때문에 바로 페이로드를 작성해보겠습니다 Binary를 실행시키면 나오는 Buf Addr을 받아와 ShellCode를 넣는 작업을 해줬습니다. 쉘이 잘 따이..
[Pwnable] x64 Simple_size_BOF
오늘은 x64 Simple_size_BOF 문제를 정리해보겠습니다. 문제부터 64비트 환경에서 BOF를 터트리라는 냄새가 솔솔 납니다 👋 우선 Mitigation부터 확인을 해보면 확실히 쉬운 문제답게 아무런 보호기법도 걸려있지 않습니다. Binary를 실행시켜 보겠습니다 자살방지 문제랍니다 허헣👀 일단 buf의 주소를 알려주니 NX bit가 걸려 있지 않아 buf 주소에 shellcode를 올린뒤 ret 대신 buf 주소를 호출 하면 되겠습니다. 근데 문제점이 있습니다🤷♀️ 계속 buf의 주소값이 바뀝니다 그렇다는 것은 ASLR이 걸려있다는건데 우리는 buf주소를 어떻게 받아올 수 있을까요? 바로 pwntools에 포함되어 있는 기능을 활용할 겁니다. 그건 이따 확인하시져🤘 IDA로 확인해보겠습니다...