전체 글
[Pwnable] x64 Buffer Overflow
오늘은 x64 Buffer Overflow를 정리하겠습니다 제목부터 64비트에서 BOF를 터트리라는거 같군요👀 우선 Mitigation을 확인해보면 NX와 FULL RELRO가 걸려있습니다. IDA로 까보겠습니다. 너무 짧은 코드라 굉장히 쉬운 문제이다. 맨처음 _isoc99_scanf로 변수 S에 입력을 받을텐데 Buffer Check를 해주지 않으니 BOF가 터질 것이다. 그럼 우리는 여기서 쉘을 띄울 수 있는 방법을 생각해야된다. 우선 Mitigation을 확인하였을때 NX bit가 걸려있어 쉘코드 삽입은 불가능 할 것이다. ASLR은 걸려있지 않은거 같으니 RTL 기법으로 풀면 될거 같다. 공교롭게도 callMeMaybe라는 함수가 존재한다. 이 함수의 주소값으로 RET Overwrite를 진행하..
[Pwnable] 내 버퍼가 흘러넘친다!!!
오늘은 내 버퍼가 흘러넘친다!!!를 정리하겠습니다 먼저 Mitigration을 먼저 체크하겠습니다 👀 확실히 기초적인 문제여서 그런지 Mitigation이 깔끔합니다. 바로 IDA로 까보겠습니다. name은 전역변수로써 bss 영역에 위치해 있으므로 read에서 BOF가 터지지는 않을거 같습니다. 하지만 변수 s는 0x14만큼 Buffer가 할당되어 있지만 gets로 입력을 받게 되면 Buffer length check를 해주지 않아 BOF가 터질 것 같습니다👏 일단 리눅스에서 Binary를 실행시켜 보겠습니다. 아까 예상했던 것처럼 input을 입력받을때 변수 S에 할당되어 있는 Buffer보다 입력을 더 받을 때 Segmentation Fault가 뜨는 것을 볼 수 있습니다 👍 그럼 우리는 어떻게 쉘..
[Pwnable] Basic_FSB
오늘은 FSB 문제를 풀어보도록 하겠슴다. 일단 Binary 파일을 IDA로 까주도록 하겠습니다 ㅇ오잉 별게 없네요 그렇다면 vuln 함수로 들어가 보도록 하겠습니다 천천히 하나씩 살펴보자면 fgets로 변수 s에 입력을 받습니다. 하지만 BOF는 터지지 않을것이고 snprintf도 별 취약점은 존재하지 않습니다. 하지만 return 값으로 printf(&format)을 해줍니다. 여기서 FSB 취약점이 터집니다 자세한 FSB 취약점은 다른분이 설명을 아주 잘 해놓으셨으니 다른 블로그를 참고해주세요...👀 일단 Mitigration을 체크해봅시다. 아주 바람직한 Mitigation입니다. 실행을 먼저 해봅시다 🙌 두번째에 들어가는 포멧스트링에 AAAA가 포인팅 되는 것을 볼 수 있습니다. 일단 정리를 해..
[Pwnable] Basic_BOF #1 & Basic_BOF #2
- Basic_BOF #1 너무나도 쉽고 기초적인 문제입니다 바로 IDA로 까보겠습니다 🙌 일단 코드를 대충 보자면 fgets로 s를 45byte만큼 입력받아 BOF가 터지기는 힘들어보입니다. 그 다음 만약 0x4030201에 위치해있는 V5가 특정 값이 된다면 쉘이 따이는군여 일단 GDB로 디버깅해보겠습니다 잘 안보이겠지만 fgets로 입력받은 바로 다음 부분에 Break Point를 걸어준다면 S의 버퍼 크기를 알 수 있을것입니다. 위 사진을 봄으로써 S와 0x4030201에 위치해있는 V5의 거리가 40byte라는 것을 구할 수 있게 되었습니다. 그럼 S에 40byte를 채워넣고 V5의 조건에 있던 값인 0xDEADBEEF를 넣어준다면 쉘이 따이는 행복한 상상을 할 수 있을거 같습니다. 그렇다면 바..
[Forensics] So easy?
예 문제부터 벌써 쉽다고 하네여 바로 해봅시다 파일을 다운받아서 압축을 풀어보면.. 👀 아주 귀여운 친구들 여럿이 나오네여 일단 Questions? 이 문제처럼 HxD로 까봅시다 저번처럼 문자열 찾기로 했더니 바로 Flag가 뜨는군여 너무 쉽습니다 그래서 Flag는 바로 HackCTF{He_s0ggazzi_long}...... 👀? 저것은 가짜 Flag 였던것이였습니다 설마 숨겨져있는 파일이 있는걸까 하고 바로 저의 우분투로 옮겨보았습니다 binwalk 명령어로 숨겨져 있는 파일이 있는지 한번 봅니다. hidden.txt 파일이 들어있는 zip파일이 보입니다. hidden.txt..? 너무나도 수상하군요 바로 foremost 명령어를 통해 기존의 jpg 파일을 까보겠습니다. 성공적으로 output 파일이..