Hacking/Pwnable (7) 썸네일형 리스트형 [ pwnable.kr ] input 문제풀이 이번 문제는 이름이 input이다보니 입력에 대한 문제일 것 같다. 이번에도 역시 ssh로 서버에 연결해야 한다. ssh input2@pwnable.kr -p2222 (pw:guest) [ pwnable.kr ] random 문제 풀이 이번 문제는 제목에서부터 무작위의 냄새가 나는 것 같다. 언제나 그렇듯 kali에서 ssh연결을 해주자 ssh random@pwnable.kr -p2222 (pw:guest) 오늘도 역시 파일 3개중에 코드인 c파일을 cat으로 먼저 열어보자 뭐지.. 이번에는 문제 소스코드가 매우짧다. 쉬어가는 문제인 느낌이다. 해석을 해보면 random변수에 rand함수의 값을 넣어준 뒤 scanf로 입력을 받아서 key라는 변수에 저장한 뒤, random함수에 있는 난수값과 key의 값을 xor해준 값을 0xdeadbeef와 비교해서 같으면 flag를 실행해준다. 코드가 짧으니 해석도 짧은 것 같다, bof같은 공격을 할 수 있는 구석도 보이진 않는다. random에 주석이 있으니까 매우 의심스럽다. rand함수를 .. [ pwnable.kr ] passcode 문제풀이 이번에 풀어볼 문제는 passcode라는 문제인데, 다시 ssh를 사용해서 연결한 뒤 푸는 문제이다. ssh passcode@pwnable.kr -p2222 (pw:guest) 이번에도 역시 flag와 passcode, passcode의 소스코드 이렇게 3개의 파일이 들어있다. 소스코드를 먼저 보자 cat passcode.c #include #include void login(){ int passcode1; int passcode2; printf("enter passcode1 : "); scanf("%d", passcode1); fflush(stdin); // ha! mommy told me that 32bit is vulnerable to bruteforcing :) printf("enter passc.. [ pwnable.kr ] flag 문제풀이 이번문제는 평소대로 이미지를 클릭해서 봤더니, 웬 다운로드 경로를 하나만 있었다. 이게 뭔가하고 다운부터 받아보니 웬 파일이 다운로드 됐다. 근데 이걸 쓰기 전에 문제 힌트로 이 문제는 reversing(리버싱) 문제라고 떡하니 쓰여져 있다. ( 왜 pwnable에서 reversing을 하는지..? ) 우리가 reversing을 공부하는중이 아니긴 하나 pwnable에서 reversing은 생각보다 많이 쓰이는데, gdb를 이용한 메모리 분석이다. 일단 이런건 제쳐두고 어떻게 문제를 푸는지 알아보자. 일단 이게 뭔지 모르니 실행을 시켜봤다. 실행시켜봤더니 다음과 같은 힌트가 출력됐다. malloc함수에 flag를 복사한다는 말 같은데, 말만으로는 잘 모르겠다. 이 파일을 뜯어봐야 할 것 같으니 디버거를 .. [ pwnable.kr ] bof 문제풀이 이번에 풀어볼 문제는 bof문제이다 bof는 buffer over flow공격 기법으로 많이 알려진 공격기법의 명칭이다. 우선 들어가기 전에 이전문제들과는 다른 화면을 볼 수 있다. 본래라면 연결할 주소만 줄 터인데 실행파일을 다운로드할 수 있는 링크와 과 소스코드를 볼 수 있는 주소, 그리고 연결하면 뭔가 입력할 수 있는 프로그램(?)을 연결 해주는 nc명령어가 덩그라니 있다. 우선 우리가 해야할 일은 언제나 소스코드인 bof.c를 먼저 보는 것이다. 주소를 인터넷 창에 입력해 보자. http://pwnable.kr/bin/bof.c #include #include #include void func(int key){ char overflowme[32]; printf("overflow me : "); g.. [ pwnable.kr ] collision 문제 풀이 pwnable.kr의 두번째 문제인 collision이다. 저번과 같이 linux환경에서 접속해주었다. ( ssh col@pwnable.kr -p2222 , password : guest ) 접속했면 본격적으로 문제를 풀어보기 위해 역시 ls -l로 파일을 확인했다 역시 실행파일인 col파일과 소스코드인 col.c와 flag파일이 있었다. 우린 이제 저 flag파일을 실행시키기위해 끙끙 앓아야 한다. ( 문제풀이를 보기전까지는 말이다. ) 우선 우리가 쓸 수 있는 것은 실행파일과 소스코드 뿐이니 소스코드를 먼저 봐야겠다. # 소스코드 ( .c , .cpp , .python ) 들은 cat명령어로 볼 수 있다. 우리는 문제를 풀어야 하기에 한번 살펴봤다. 우선 소스코드를 해석해보자면 long형으로 hash.. [ pwnable.kr ] fd 문제풀이 pwnable.kr에 들어가면 pwnable.kr의 첫 계단인 fd문제를 마주하게 된다. 문제의 이미지를 클릭하면 아이의 천진난만(?)한 질문과 함께 문제를 풀기 위해서 어떤 방식으로 접속하는지, 어떻게 푸는지 힌트를 제공해준다. putty라는 프로그램으로도 문제 서버에 접속할 수도 있지만 나는 linux환경인 kali나 ubuntu의 터미널에 접속했다. 접속한 뒤 ls -l로 어떤 파일이 있는가 확인해 보니 setuid가 걸려있는 파일이 있었다. ( root권한에서 실행권한이 x대신 s가 되었기 때문 ) # setuid가 걸려있기 때문에 저 파일을 이용해서 권한을 얻어 flag를 실행시킬 수 있을 것이다. 그렇기 때문에 fd.c파일을 cat을 이용해서 읽어보면 fd의 소스코드를 알 수 있다. 그런 뒤 .. 이전 1 다음