본문 바로가기

Security 잘하고 싶당 ㅎㅎ/System Hacking

(2)
unlink 취약점? pwnable.kr unlink 문제를 풀어보기 위해서 , unlink 취약점에 대해서 찾아 봤어요. 처음에 봤을 때는, 하나도 이해가 안 갔지만 ㅠㅠㅠㅠ 그래도 계속 읽다보고 생각하다보니까 아주 조금 이해가 됬어요 ㅠㅠ. 조금이라도 더 기억하기위해서 한번 끄적여 볼게요. malloc을 통해서 동적할당을 다음과 같이 한다고 생각해 보죠. --> malloc(32) 그렇다면 32바이트만큼 할당이 되어야할 것 같지만, 실제로는 40바이트가 할당이 됩니다. 왜 그럴까요? 바로, 할당된 메모리를 관리하기 위한 정보들이 포함되어 있기 때문이에요! 그러한 정보는 chunk라고 불리는 구조체를 통해 할 수가 있어요. 동적할당된 메모리는 chunk라고 불리는 구조체로 관리를 하고 있어요. 이 구조체는 다음과 같이 구성..
버퍼 오버플로우(Buffer Overflow == BOF) 개념을 알아보자. bof, bof_notvul 두개의 프로그램을 가지고 있다고 생각하자. 하나는 버퍼 오버플로우의 취약점을 가진 프로그램이고, 하나는 버퍼 오버플로우의 취약점을 없는 프로그램이다. 먼저 버퍼 오버플로우 취약점을 가지는 프로그램인 bof를 제공된 exploit 방법으로 공격을 시도했다. 공격은 다음과 같이 성공했음을 알 수 있다. 그 후, 취약점이 패치된 프로그램인 bof_notvul을 제공된 exploit 방법으로 공격을 시도했다. 하지만 다음과 같이 공격이 실패했음을 알 수 있다. 혹시 bof_notvul 프로그램에는 리눅스의 보호기법인 NX bit, no pie, ASLR, SSP등 설정이 되어있는지 확인하기 위해서 checksec 이라는 쉘 스크립트를 사용했다. 간단히 보호기법에 대해 설명을 하자면,..