CTF 스터디
[pwnable.kr] 3번_bof 풀이
포너블 3번_bof 문제 풀이 시스템 해킹에서 중요하게 다뤄지는 버퍼오버플로우 문제이다. 일단 앞서 풀었던 두 문제와 처음부터 다르게 생겨 어떻게 시작을 해야할지부터 고민했다. 먼저 위의 두 파일을 다운로드 받아야하기 때문에 wget명령어를 통해 다운로드 받았다. 아래의 Running at : nc pwnable.kr 9000은 nc(net cat)은 TCP나 UDP 프로토콜을 사용하는 네트워크 연결에서 데이터를 읽고 쓰는 간단한 유틸리티 프로그램으로 대부분의 리눅스에 기본적으로 탑재되어 있다. 일반적으로 Unix의 cat과 비슷한 사용법을 가지고 있지만 nc는 네트워크에 읽거나 쓰며, 이 명령어를 스크립트와 병용하여 네트워크 디버깅, 테스팅 툴로 사용하며 해킹에도 많이 사용하는 프로그램이라고 한다. 하..
[pwnable.kr] 2번_collision 풀이
포너블 2번_collision 문제 풀이 먼저 가장 아래에 있는 ssh col@pwnable.kr -p2222를 통해 접속했다. 비밀번호는 guest를 입력해주었다. 1번 문제를 풀었던 방법과 동일하게 시작해보았다. 어떤 파일이 있는지 확인하기 위해 ls 명령어를 입력했다. col, col.c, flag 파일 총 3개가 있었다. root 권한이 아닌 col 파일을 열어보니 [passcode]라고 나타났다. 패스코드를 찾아서 입력해야 문제를 풀 수 있을 것처럼 생겼다. col.c는 예상한 것럼 root권한이라 열리지 않았고, cat 명령어를 통해 파일 내용을 출력하였다. 생각보다 긴 내용이 담아져 있었다. check_password와 메인함수의 조건문을 중요하게 보아야 할 것 같다. 조건문을 봐보면 has..
[pwnable.kr] 1번_fd 풀이
포너블 1번_fd 문제 풀이 먼저 맨 아래 ssh gd@pwnable.kr -p2222를 통해 접속해야하는 것 같다. 비밀번호는 guest를 입력해주었다. 처음에 여기서 더 어떤걸 해야하는지 모르겠어서 어떤 파일이 있는지 확인해보려고 ls 명령어를 입력했다. fd, fd.c, flag 파일 총 3개가 있었다. fd.c와 flag의 경우 root 권한이기 때문에 확인할 수 fd를 실행해보았다. ""pass argv[1] a number"이라는 문구가 떴다. 숫자를 함께 입력해야 하는 것 같다. fd.c는 권한이 거부되어서 cat으로 내용을 확인해보았다. fd = atoi(argv[1]) - 0x1234 부분이 중요해보인다. fd 값이 read함수에서 fd가 0이면 표준입력, 1이면 표준 출력, 2이면 표준..