일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 카이사르
- write up
- 리눅스
- #picoCTF2018
- Smashing The Stack For Fun And Profit
- 번역
- KOISTUDY
- 스택
- Aleph One
- 정답
- grep
- picoCTF2018
- WEB
- general skills
- 시스템
- #hacking
- dreamhack
- CTF
- reversing
- 리버싱
- cryptography
- 해설
- Hxd
- 해킹 공부
- 시스템해킹
- forensics
- Protostar
- picoCTF
- 버퍼오버플로우
- writeup
Archives
- Today
- Total
Security || AI
[picoCTF2018 Writeup] caesar cipher2 -Points: 250 본문
CTF(해킹대회)/picoCTF 2018
[picoCTF2018 Writeup] caesar cipher2 -Points: 250
보안&인공지능 2018. 10. 17. 12:43
문제의 message를 HxD로 열면 아래의 사진과 같은 문자열이 나온다.
이 문자열을 보고 추측을 해보면 원래의 FLAG형식은 pico로 시작하는데 이 문자열은 PICO인 대문자로 시작한다는 것을 알 수 있다. 실제로 아스키코드표를 보면 대문자가 소문자보다 아스키코드 값이 작은 것을 볼 수 있다. 또한, 중괄호가아닌 대괄호인 것을 볼 수 있다. 그래서 추측을 해보면 P와 p의 아스키코드값의 차이는 32이므로 문자열 전체에 32씩 더한 아스키코드 값을 출력하면 풀릴 것이다.
#include <stdio.h> #include <string.h> #include <windows.h> int main() { char s[10000]; gets(s); for(int i=0; i<strlen(s); i++) { printf("%d",s[i]); s[i]+=32; } printf("FLAG: %s\n",s); system("pause"); }>
이런 소스를 짜면 아스키코드가 32씩 추가된 문자열을 볼 수 있다.
반응형
'CTF(해킹대회) > picoCTF 2018' 카테고리의 다른 글
[picoCTF2018 Writeup] Mr.Robots -Points: 200 (0) | 2018.10.17 |
---|---|
[picoCTF2018 Writeup] Irish Name Repo -Points: 200 (0) | 2018.10.17 |
[picoCTF2018 Writeup] hex editor -Points: 150 (0) | 2018.10.17 |
[picoCTF2018 Writeup] caesar cipher1 -Points: 150 (0) | 2018.10.17 |
[picoCTF2018 Writeup] admin panel -Points: 150 (0) | 2018.10.17 |