포너블 3

pwnable.kr 15. cmd2

main 함수부터 보자. delete_env()함수를 대뜸 실행한다. 이 아이는 뭐하는 아이잉고.. delete_env()함수는 바로 위에 나와있다. 현재 저장되어있는 환경변수를 모두 삭제하는 함수인가보다. 이 함수를 실행하고 PATH 바꿔주고,, filter함수를 실행하는데, ㅎ 이 함수는 cmd1에서 했던 filter에서 조금 더 추가된 모습을 하고있다. strstr()함수를 통해 "=", "PATH", "export", "/", "`", "flag" 문자열들의 존재를 확인한다. 일단 cmd1에서 했던 방법에서 /bin/cat 명령어를 사용하여 flag를 조회하였는데, 여기 cmd2에서는 '/'이 필터링이 되기 때문에 불가능하다. 그럼 어떻게 하란말이야!!!!!!!!!!!!!!!!!!!!!!!!!!!..

SECURITY/pwnable 2021.05.18

pwnable.kr 14. cmd1

cmd1.c 의 코드를 잘 살펴보겠다. main함수부터 보면, PATH를 /thankyouverymuch로 설정한다. 그리고 filter함수를 argv[1]인 아이를 매개변수로 전해주며 실행한다. 이 filter함수의 결과가 true(1)이면 프로그램 종료가 되고 그렇지 않으면(false, 0) system( argv[1] ); 명령을 실행한 후 프로그램 종료가 된다. 그렇다면 filter함수는 뭐하는 함수인가? filter함수에서, strstr함수는 매개변수로 들어온 아이(문자열)에서 "flag", "sh", "tmp" 이 3개의 문자열이 있을 경우 인덱스의 값을 리턴하지만, 존재하지 않을 경우, null갑을 리턴해주는 함수이다. 그런데 이 strstr함수의 리턴값이 0과 다를 경우, 즉 주어진 문자열..

SECURITY/pwnable 2021.05.18

pwnable.kr 4.flag

리버싱에 관련있는 거 같은데 문제에서 하라는 대로 다운을 받았다. 다운 받은 파일에 대해 궁금하니 ls -al 해당 파일을 실행파일로 바꿔보자 chmod +x flag 실행파일로 바꾼 flag파일을 실행시켜보자 I will malloc() and strcpy the flag there. take it. => malloc,strcpy, flag를 그곳에 둘것이니 가져가시오. 이것으로 본다면 flag는 c언어로 작성된 파일이라는 것을 알 수 있다. gdb로 flag 파일을 디버깅 하려했더니 No debugging symbols found in flag => 가능성 1. 파일 손상 2. 암호화 되어있어 읽지 못함 flag파일을 윈도우로 가져와서 freeware을 돌려보았다. 맨아래 unpack info에서 d..

SECURITY/pwnable 2021.03.31