일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- dreamhack
- 리버싱
- writeup
- grep
- #picoCTF2018
- picoCTF
- write up
- cryptography
- 정답
- 리눅스
- Protostar
- Smashing The Stack For Fun And Profit
- 시스템해킹
- 카이사르
- forensics
- Aleph One
- 스택
- CTF
- Hxd
- general skills
- KOISTUDY
- 해킹 공부
- #hacking
- 시스템
- picoCTF2018
- reversing
- 버퍼오버플로우
- WEB
- 번역
- 해설
- Today
- Total
Security || AI
[picoCTF2018 Writeup] what base is this? -Points: 200 본문
[picoCTF2018 Writeup] what base is this? -Points: 200
보안&인공지능 2018. 10. 17. 17:4830초 안에 풀어야 하는 문제들로 구성되어있다.
처음에는 시간제한이 있기 때문에 시간을 지나서 답을 풀고 그 답들을 외워서 풀려 했지만 문제들이 랜덤으로 나와 그렇게 풀 수는 없었으므로 정석대로 풀어야하는 문제이다.
nc에 접속해보면 아래의 그림과 같이 2진수로 되어있는 5개의 글자를 볼 수 있다. 이 2진수를 아스키코드로 전환하면 첫번째 문제를 풀 수 있다.
이 문제를 푸는 프로그램을 만들고 있었는데 알고보니 Please gibe me the ~~ 위에 답이 있었다.
그러므로 첫번째 문제는 위의 내용대로 풀면 된다.
위의 그림 가장 아랫줄에는 16진수로 이루어진 단어로 보이는 문자열이 있다. 이 또한 아스키코드로 변환하여 단어를 찾으면 되는 문제인데 프로그램을 만들려다가 구글에서 그냥 찾아보니 https://www.percederberg.net/tools/text_converter.html라는 사이트에서 쉽게 정답을 얻어낼 수 있었다. 아래 그림은 사이트에서 단어로 변환한 결과이다.
이 숫자가 의미하는 것을 처음에는 몰랐지만 계속 보다보니 지금까지 2진수, 16진수를 사용해왔기 때문에 8진수를 썼다는 것을 알게 되었다.
8진수 이다보니 8진수를 문자열로 변환해주는 프로그램은 찾기가 어려웠다.
그래서 이를 해독하는 프로그램은 c언어에서 scanf를 for문을 통해 실행을 시키면 띄어쓰기를 통하여 한번에 값을 입력할 수 있고 한꺼번에 입력 결과를 붙여서 출력하는 특성을 이용해서 아래의 소스와 같이 간단히 8진수를 아스키코드로 변환하는 프로그램을 만들다.
#include <stdio.h> main() { int n;
while(1)
{
scanf("%o",&n);
printf("%c",n);
}
}
이 소스를 실행시켜 문제의 값들을 넣으면 정답을 얻어낼 수 있다.
이렇게 8진수 문제를 마지막으로 모든 문제를 풀면 FLAG를 얻어낼 수 있다.
'CTF(해킹대회) > picoCTF 2018' 카테고리의 다른 글
[picoCTF2018 Writeup] What's My Name? -Points: 250 (0) | 2018.10.17 |
---|---|
[picoCTF2018 Writeup] The Vault -Points: 250 (0) | 2018.10.17 |
[picoCTF2018 Writeup] leak-me -Points: 200 (0) | 2018.10.17 |
[picoCTF2018 Writeup] Mr.Robots -Points: 200 (0) | 2018.10.17 |
[picoCTF2018 Writeup] Irish Name Repo -Points: 200 (0) | 2018.10.17 |