목록list (398)
y0u_bat
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
[Pwnable.kr] bof - 5pt 풀이 BOF문제인거같네여. C코드를 보아 하니 gets 함수에서 버퍼오버플로우 취약점이 발생합니다.오버플로우를 읽으켜서 key값까지 덮어버리면 될거같네요. 우선 아이다로 overflowme의 더미+버퍼를 구해봤습니다 .44바이트네요. [버퍼44] [sfp4] [ret4] key ~~~~~~~ 이거예여 그러므로 ret까지 그냥 A로 덮고 key값으로 해주고 싶은 값 넣어주면 풀리겠네여. 클리어
[Pwnable.kr] collision - 3pt 풀이 check_password() 함수의 인자는 포인터로 받는다. 즉 주소인 4바이트로 나눠서 받는다. argv[1]가 무조건 20바이트여야 된다. check_password(argv[1])와 hashcode와 동일하게 맞쳐주면 플래그가 출력된다. check_password함수는 4바이트로 나눠서 받기 때문에 hashcode를 5로 나눠보았다. 저렇게 나오는것을 알 수 있다. 한번 다시 5로 곱해 보았다. 원본값에서 -4된 값이 나오는걸 볼 수 있다.왜 그런건지는 모르겠지만 그렇게 나왔다. check_password함수에서 4바이트로 나눠서 받고 그것을 res에 다 더하기 때문에,hash값을 5로 나눈뒤 그 값인 0x6c5cec8을 4번 0x6c5ce..
[Pwnable.kr] fd - 1pt 풀이 리눅스 파일디스크럽터에 대해 아냐고 물어본다. 파일 디스크럽터에 대한 문제 인가보다. 파일 디스크럽터에 대해 알아야된다.http://y0ubat.tistory.com/31 - 설명 접속해서 fd.c 를 보았다. 우선 argv[1] 에 입력을 해야되고,read(fd,buf,32); 에 의해 buf에 32글자까지 입력가능하다. 만약에 buf가 LETMEWIN 이면 flag을 읽고 아니면 file IO에 대해 배우라는 문장이 뜨고 종료한다. int fd = atoi(argv[1]) -0x1234; 여기서 atoi라는 함수가 나온다.http://y0ubat.tistory.com/30 - 설명 파일 디스크럽터0 stdin - 입력1 stdout - 출력2 stderr ..
정의: 컴퓨터 프로그래밍에서 파일 디스크럽터란 파일에 접근하기 위해 추상화 시켜놓은 장치를 이야기함윈도우의 핸들과 파일 디스크럽터는 같은 의미 이다. 리눅스는 모든장치를 파일로 관리하기 때문에 파일디스크럽터를 이용해 장치에 접근 할 수 있게된다.일반파일뿐만 아니라 외부장치도 파일로 취급한다. 커널은 프로세스 단위로 열린 파일 목록을 담아 둘 수 있는 테이블을 관리하는데, 파일 디스크럽터가 이테이블에 등록되어 관리되고 있음 테이블에 새로운 디스크럽터를 등록하게 되면 파일디스크럽터는 0부터 순차적으로 1만큼 자동으로 등록됨 기본적으로 파일 디스크럽터는 0,1,2 번호는 이미 예약되어 있는 번호이다. -1 -> 오류0 -> stdin(표준입력) : 키보드1 -> stdout(표준출력) : 모니터2 -> std..