pwnable.kr(4)
-
pwnable.kr [random] writeup
안녕하세요!오늘은 pwnable.kr random문제를풀어보도록 하겠습니다! 소스코드는 아래와 같습니다! 문제 제목에서부터 random이라고 명시해놨으니,random 한 것과 관련이 있는 문제겠죠? 우선 코드를 쭉 보고 어디가 취약한지 분석해보도록 하겠습니다! 맨 위에 random이라는 변수가 선언이 되었구요,random이라는 변수에 rand( )함수를 이용해서 값을 넣습니다!(랜덤한 값이겠죠..?) 그 다음에 key 변수를 선언하고 0으로 초기화 합니다!그다음에 이 key 값에scanf함수를 통해서 사용자에게 입력을 받아서key값에 기록합니다! 그리고 이 key에 적힌 값과 random에 적힌 값을 ^연산해서 (xor 연산)0xdeadbeef가 나오면문제가 풀리게됩니다! xor연산 : 두 값이 같으면 ..
2019.05.03 -
pwnable.kr [collision] writeup
안녕하세요!오늘은 pwnable.krcollision 문제를 풀어보도록 하겠습니다! 소스코드는 아래와 같습니다! 제일 위에hashcode라는 변수에 0x21DD09EC라는 값이 담겨있네요! 그리고 check_password라는 함수가 있습니다!인자로는 char형의 포인터가 들어갑니다!근데 이후에 바로 이 포인터가 형 변환이 일어납니다! char 형의 포인터에서 int형의 포인터로 말이죠!char* p -> int * p(이 바뀌는 부분이 끼칠 영향은 아래에서 더욱 자세하게 설명드릴게요) 왜냐하면 (int*)p라고 되어있잖아요!그리고 이 변환된 pointer는 ip의 포인터에 담기게 됩니다! 그리고 i라는 변수가 선언되고res라는 변수도 0으로 선언과 동시에 초기화가 됩니다 그리고 5번 for문을 돕니다!..
2019.05.02 -
pwnable.kr [bof] writeup
안녕하세요!오늘은 pwnable.krbof 문제를 풀어보도록 하겠습니다! 문제에 있는소스코드는 아래와 같습니다! 맨 위에 func이라는 함수가 보이네요!func의 인자로 key라는 인자가 들어갑니다! 그리고 overflowme[32]라는 건방진?! 버퍼가 있구요gets함수로(취약한 함수)overflowme 버퍼에 값을 씁니다! 주석에도 smash me라고 나와있듯,gets 함수가 얼만큼 받을지길이 제한이 안되기 때문에, 저희가 원하는 만큼 덮어 쓸 수 있습니다! 그리고 if 문으로key 값이 cafebabe가 되었는지확인을 합니다! cafebebe인 경우 shell이 획득되며, cafebabe를 제외한 모든 값들은모두 nah...(아니야..)를출력하게 됩니다 main함수를 보니fun함수에 0xdeadbe..
2019.05.01 -
pwnable.kr [fd] writeup
안녕하세요!오늘은 pwnable.kr첫 번째 문제인 fd를 풀어보도록 하겠습니다! 문제를 클릭하면 아래와 같이 창이 뜹니다!그리고 리눅스를 키셔서 ssh fd@pwnable.kr -p2222를 복사, 붙여넣기 하시고 입력창에 guest라고 치시면!문제가 있는 폴더로 이동 되실겁니다! 이렇게 ls 명령어를 통해서fd 실행 파일과 fd 소스코드를 확인 할 수 있구요!flag 도 있네요!(물론 접근 권한은 없습니다..) 소스코드는 아래와 같습니다! 맨 위에 전역변수로 buf[32]가 선언되어있네요! 일단은 main에 인자가 argc랑 char* argv[ ]가 있는 걸보니input 방식이 argv 인 것 같네요! 그리고 argument가 2개보다 작으면안되구요!return 0; 하죠? 그리고 이제 fd라는 변..
2019.04.29