본문 바로가기

Pwnable14

[Pwnable.kr] Toddler's Bottle_collision SeedUbuntu를 이용하여 문제를 풀 거다. 처음 문제에 들어갔을 때 보이는 모습이다. 비밀번호를 치고 해당 문제로 들어갔다. ls -a 명령을 이용해서 파일의 목록을 확인하였다. col에 setuid가 걸려있다. 먼저, cat 명령어를 이용하여 col.c 파일을 확인하였다. 전역변수로 선언된 hashcode라는 함수에 0x21DD09EC가 들어있다. check_password 함수에서는 인자로 p를 입력받는다. 그 후에 인자로 받은 p배열의 int 값(4bytes)을 인덱스를 이동하면서 5씩 더해준다. 그 값을 res에 저장한 후, 리턴한다. main 함수에서 인자로 받은 20bytes 값을 check_password에 전달한 후, check_password의 리턴값과 hashcode의 값이 같을 .. 2021. 3. 23.
[Pwnable.kr] Toddler's Bottle_fd 처음 들어가면 보이는 문제이다. 리눅스에서 'ssh fd@pwnable.kr -p2222' 로 접속하면 무언가 뜰 거 같다. 비밀번호를 입력하라고 나오는데 비밀번호는 문제에서 'quest'라고 알려주었다. ls 명령어를 사용해서 현재 디렉토리에 있는 내용을 확인한다. fd, fd.c, flag 파일이 있는 것을 볼 수 있다. 먼저 cat 명령어를 사용해서 fd.c 파일을 확인하였다. fd.c를 자세히 보면 fd 파일을 실행한 후 첫 번째로 넘기는 인자에서 0x1234만큼 빼준다. atoi 함수는 문자열을 정수로 변환하는 역할의 함수이다. 그 다음으로는 read 함수를 이용하여 fd, buf, 32를 확인한 후 strcmp로 buf 값이 LETMEWIN이면 플래그를 출력하는 방식인 문제이다. 리눅스 파일 .. 2021. 3. 17.