티스토리 뷰
rcity.rcityboan.com 에서 CTF 를 오픈 하여 모든 문제를 풀었고, 단순히 풀고 끝내는게 아닌 WriteUP 을 작성 해보고자 한다.
구성은 Tutorial , Easy , Medim , Hard 로 구성 되어 있고 문제는 총 19문제 이다.
Medium - Operation 8 번 문제 를 풀어 보자
문제를 풀이를 위해 Rcity CTF 서버 접속은 Kali 를 통해 CLI 로 진행 했다.
목차
1. 문제 확인
2. 풀이
3. 여담
문제 확인
''''''
base64 문제가 다시 등장~
"단순히 디코딩만 하면 될 것 같은데? 뭔가 컴퓨터가 "반복"적으로 일을 해줄 수 있는 자동 스크립트가 있으면 좋겠단다"
" flag:<플래그>" 문자열을 찾아내면 될 것"
base64 로 인코딩 된 문자열을 반복적으로 디코딩해 보라는 뜻인데 그끝은 "flag:" 에 있는거 같다
그럼 스크립트를 작성 해서 "flag" 라는 문자가 나올때까지 디코딩을 돌려 보자 ~
''''
풀이
이제 익숙해 졌을거에요 file 로 파일을 확인하는 것이~
flag.txt 파일을 확인 해보니 " very long lines (65536) 라인에 어마어마한 text 가 있는다..
이거 일일이 디코딩 못한다...
양이 어마어마 하다... 진짜.. 스크립트, 프로그래밍 으로 돌리지 않으면 못찾게 해놨다.....
그래서 스크립트를 짰다.
우선 해야 할것이 지금 이 txt 들을 쓰기 권한이 주어지는 /tmp/ 디렉토리 밑에 내가쓸 디렉토리를 만들고
거기에 text 파일을 옮겨 스크립트를 짜봐야 겠다.(물론 절대경로를 사용해도 된다.)
여기서 스크립트 를 짜서 문제를 풀어 봐야겠다
#!/bin/bash
input_file="flag.txt"
flag="flag"
encoded_data=$(cat "$input_file")
while [[ -n $encoded_data ]]; do
decoded_data=$(echo "$encoded_data" | base64 -d 2>/dev/null)
if [[ -n $decoded_data ]] && [[ $decoded_data == *"$flag"* ]]; then
echo "Flag found: $decoded_data"
break
fi
encoded_data=$decoded_data
done
if [[ -z $encoded_data ]]; then
echo "Flag not found."
fi
텍스트 파일 "flag.txt"에서 Base64로 인코딩된 문자열을 디코딩하고, 그 중에서 "flag"라는 문자열을 포함하는 부분을 찾는
Bash 스크립트 이다.
결과는?
음 출력 되었다... 맞는지 확인해 보니 맞다~
여담
이번 문제는 리눅스 에 스크립트 사용법을 알아 봐라 하는 목적에 문제 인거 같다.
반복문 과 비교문 을 통해 "flag" 라는 문자를 찾는 문제 였으니...
bash 스크립트 가 아니더라도 python 으로 작성 해도 되는데...
왠지.. 파이썬으로 컴파일 하는 게 구찬다...
그리고 스크립트 는 리눅스를 그만두게 되지 않는 이상 쓰야하고 자유자제로 다룰주 알아야 일이 편해지니..
굳이 해봤다... 그리고 중간중간 틀릴대 chatGPT 도움 받았다~
마무리
문제 의 목적은 자동화 하는 방법을 익히자~
'War Game Site > rcity' 카테고리의 다른 글
Rcity Medium Operation 10 / WriteUp (0) | 2023.09.13 |
---|---|
Rcity Medium Operation 9 / WriteUp (0) | 2023.09.13 |
Rcity Easy Operation 7 / WriteUP (0) | 2023.09.12 |
Rcity Easy Operation 6 / WriteUP (0) | 2023.09.08 |
Rcity Easy Operation 5 / WriteUP (0) | 2023.09.08 |
- Total
- Today
- Yesterday
- RCity operation 1
- 리눅스 환경변수 지정
- 리눅스본딩
- 주소DB만들기
- 파이썬실습
- rhcsa8 기출문제
- podman
- 7-zip
- Grootsecurity
- 리눅스 명령어
- rhcsa8
- rhcsa8 덤프
- rhcsa8덤프
- grootsecuriry
- grootboan
- CTF
- gzip
- Rcity
- rhcsa8 시험문제
- 라쿤시티
- Rcityboan.com
- 리눅스 쉘 스크립트
- Rcity CTF
- PODman기초
- Rcity1번
- Rcity 9번
- 쉘 스크립트 기초
- 리눅스
- 파이썬기초
- 맨탈훈련
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |