본문 바로가기

[WebGoat] Configuration & Installation 사전 준비 WebGoat를 구동하는 데 Java가 필요하다. http://download.oracle.com/ 으로 접속하면, 다른 페이지로 redirect 하는데 중간 부분에 이런 링크가 있다. 표시된 부분을 클릭하면 중앙에 바로 이 이미지를 볼 수 있는데, 표시된 부분을 클릭한다. Windows 기준으로 표시된 것 중 자신에게 해당하는 것을 설치하면 된다. 설치 과정은 쉬우니 따로 적진 않겠다. 설치되면서 자동으로 환경 변수를 설정해줬던 것 같은데, 설치 후 아래의 명령어가 먹히지 않으면 수동으로 설정해주자. Java 설치는 완료했다. 이제 WebGoat를 다운받자. http://github.com/WebGoat/WebGoat 로 접속하면 다음 페이지가 보인다. 아래로 내려보면, Download 링크.. 더보기
[Pwnable.kr] [Toddler's Bottle] fd Pwnable.kr의 첫 번째 문제이다. fd라는 바이너리가 있는데, 숫자로 된 인자 하나를 필요로 한다. 소스 코드를 뜯어보자. fd 변수에 입력한 숫자 - 0x1234한 값을 넣고, 그 fd로부터 32바이트만큼 읽어 buf에 저장한다. buf의 값이 "LETMEWIN"이면 flag 파일을 읽고 종료, 아니면 오류를 뱉는다. 여기서 read라는 system call에 대해 알아보자. read(int fd, void *buf, size_t nbytes)fd: File Descriptorbuf: 읽고 저장할 버퍼nbytes: 읽어들일 크기 리눅스에서는 파일, 소켓 등 입출력 처리를 할 때 File Descriptor를 이용한다. 기본적으로 아래의 3개를 지원해주며, 그 밖의 파일, 소켓을 이용한 입출력이 .. 더보기