목록War Game/HackCTF (44)
tmxklab
1. 문제확인 nc ctf.j0n9hyun.xyz 3003 1) 접속 Name과 input값을 입력한 뒤 프로그램 종료 2) IDA(Pseudocode)확인 - main() read()를 사용하여 표준입력을 받아 name변수에 50bytes까지 저장 가능 gets()를 통해 표준입력으로 들어온 문자열을 s변수에 저장 gets()에 쓰인 s변수는 main()에서 선언되어 있지만 read()에 쓰인 name변수는 main()에서 찾을 수 없음 ssize_t read(int fd, void *buf, size_t len) - int fd : 파일디스크립터(0, 1, 2는 표준 입력, 표준 출력, 표준 에러) - void *buf : 데이터를 저장할 버퍼 - size_t len : 읽을 데이터 크기 char *..
1. 문제확인 nc ctf.j0n9hyun.xyz 3002 1) 접속 "hi"를 입력하면 출력 값으로 "hi"을 내보내고 프로그램은 더이상 실행되지 않음 2) IDA(Pseudocode)확인 - main() vuln()를 실행하고 종료 3) IDA(Pseudocode)확인 - flag() system() 실행 4) IDA(Pseudocode)확인 - vuln() fgets()를 통해 input값을 s변수에 저장한 뒤 snprintf()를 통해 s변수에 저장된 값을 format변수에 저장 이때, 1024bytes까지 사이즈의 범위를 제한했지만 포맷을 지정하지 않았음 -> FSB 취약점 존재 마지막으로 format변수에 저장된 값을 포맷 지정 없이 printf()를 통해 출력 -> FSB 취약점 존재 int..
1. 문제확인 nc ctf.j0n9hyun.xyz 3001 1) 접속 "hi"를 입력하면 출력 값으로 "하아아아아앙"(?)을 출력하고 프로그램은 더이상 실행안됨 2) IDA(Pseudocode)확인 - main() IDA의 hex-lay기능을 통해 디컴파일된 c언어 코드로 변환 char형 s변수는 [ebp-8Ch]이므로 ebp로부터 140bytes만큼 떨어져 있고 void형 v5함수 포인터 변수는 [ebp-Ch]이므로 ebp로부터 12bytes만큼 떨어져 있음 v5변수 선언 후에 sup()함수의 주소를 저장 fgets()로 133bytes만큼의 입력 값을 받음 v5()가 방금 지정한 함수 실행 3) IDA(Pseudocode)확인 - sup() s에 입력된 값을 화면에 출력함 4) IDA(Pseudoco..
1. 문제확인 nc ctf.j0n9hyun.xyz 3000 1) 접속 "hi"를 입력하면 출력 값으로 "[buf] : hi"와 [check] 0x4030201을 출력하고 프로그램은 더이상 실행안됨 2) IDA(Pseudocode)확인 - main() IDA의 hex-lay기능을 통해 디컴파일된 c언어 코드로 변환 char형 s변수는 [ebp-34h]이므로 ebp로부터 52bytes 떨어져 있고 int형 v5변수는 ebp로부터 12bytes떨어져 있음 v5변수 선언 후에 0x4030201로 초기화 fgets()로 45bytes만큼의 입력 값을 받아 printf()로 출력함 두 번째 if문에서 v5변수가 초기화시킨 값이 아닌 0xDEADBEEF로 변경되면 system()함수 실행 2. 접근방법 1) 스택 구..