$ 시스템 해킹 $/pwnable.kr
-
[Toddler's Bottle] 5번.[passcode]$ 시스템 해킹 $/pwnable.kr 2018. 12. 2. 11:09
이번에 풀어볼 문제는 pwnable.kr의 5번문제인 [passcode] 문제 입니다.주요한 passcode.c 파일이 있네요 한번 확인해 보겠습니다.코드를 살펴 보면 main() -> welcome() -> login() 이 순서대로 들어가는 것을 알 수 있습니다.welcome()에서 이름을 입력 받은 뒤에 login()에서 passcode1,passcode2를 입력 받아서 if문으로 비교 해서 맞으면 /bin/cat flag를 실행 시키는 방식으로 이루어진 코드 인 것 같습니다. 한번 코드를 실행시켜서 338150와 13371337을 넣어보겠습니다.Segmentation fault 즉, 세그먼테이션 오류가 나네요 그 이유를 보니 scanf에서 &가 없습니다.&변수 형태가 변수가 들어있는 주소이고, 이..
-
[Toddler's Bottle] 3번.[bof]$ 시스템 해킹 $/pwnable.kr 2018. 12. 1. 23:17
이번에 풀어볼 문제는 pwnable.kr의 3번문제인 [bof] 문제 입니다.문제를 보니까 download가 있으니 한번 다운 받아 보겠습니다.URL 이 있기 때문에 wget 을 사용했습니다. 파일을 한번 확인 해 보겠습니다 음.. 일반폴더 하나와 c언어로 작성된 코드가 하나 있네요 내용을 확인해보면 func함수로 들어가서 값을 출력하는거 같은데..Key 값과 0xcafebabe와 일치해야 /bin/sh에 있는 flag가 나오는 코드인거 같네요 Key값은 func에 있는 0xdeadbeef 인거 같은데… 실행을 한번 해보겠습니다. 실행권한을 부여해주고 실행을 해보니 값을 입력 받으려고 하는거 같네요 저기에있는 0xcafebabe를 입력해보겠습니다. 안나오는 걸 보니 gdb를 이용해서 한번 리버싱 해보겠습..
-
[Toddler's Bottle] 4번.[flag]$ 시스템 해킹 $/pwnable.kr 2018. 11. 30. 22:33
이번시간에 풀어볼 문제는 www.pwnable.kr 의 4번째 문제 [flag]입니다.키워드를 한번 뽑아보면 packed // reversing // need binary 리버싱을 이용해야 하는 문제인거 같네요 일단 저 url을 이용해서 다운로드를 받아줍니다.그리고 파일이 무엇인지 확인합니다.실행했을때 힌트를 받을수도 있기 때문에 실행파일로 바꿔 봅시다.실행파일로 바뀌었다는 걸 알수 잇습니다. 실행을 한번 해보겠습니다. malloc() (동적할당) 과 strcpy 그리고 flag를 그곳에 둘것이니 가져가라 라는 뜻같네요 파일 분석을 한번 해보면..그냥 ELF형식의 64비트라는것을 알수 있네요. 32비트가 아니라는것은 알수 있었습니다. 그러면 이제 gdb을 이용해서 리버싱을 한번 해보겠습니다.gdb로 들어..
-
[Toddler's Bottle] 2번.[collision]$ 시스템 해킹 $/pwnable.kr 2018. 11. 29. 17:00
이번에 풀어볼 문제는 pwnable.kr의 2번문제인 [collision] 문제 입니다. (* 사정상 이번에는 cmd를 이용해서 문제를 풀겠습니다. )MD5 해시 라는 말이 보이네요 ssh를 통해서 한번 문제로 들어가 보겠습니다. ls -l 명령어를 통해 무슨 파일이 있는지 확인해 보겠습니다. col, col.c , flag가 있네요 flag는 접근 불가능 하고 col.c를 읽어 봐야 할거 같네요.Hash code 가 16진수로 되어있네요. 대충 코드를 살펴 보니 argc는 2보다 커 야하고 길이는 20이어야 합니다. Hashcode 16진수를 10진수로 변환해 보겠습니다. 0x21DD09EC -> 568134124 Check_password함수를 보면 입력 받은 p의 주소 값을 포인터형 변수 ip에 집..
-
[Toddler's Bottle] 1번.[fd]$ 시스템 해킹 $/pwnable.kr 2018. 11. 29. 11:24
처음으로 www.pwnable.kr 1번문제를 보면 다음과 같습니다.맨 아래줄에 있는 ssh fd@pwnable.kr -p2222 를 이용해서 문제에 접속하기입력 후에 guest를 비번으로 입력ls 명령어를 이용해서 무슨 파일이 있는지 확인합니다.fd.c 파일과 fd파일 flag파일이 있네요. 그러면 fd.c파일의 내용을 확인 해보겠습니다.fd을 실행할때 argc라는 변수를 같이 입력해야 실행이 되는 파일입니다.argc는 2 이상이어야 하고 int fd = atoi(argc[1])을 보면 값이 0x1234 라는것을 알수 있습니다. 0x1234는 16진수 값이기 때문에 10진수로 바꿔줘야 합니다. 0x1234 = 4660입니다.엔터 하면 입력을 계속 받으려고합니다. 다시 코드를 보면 if(!strcmp("..