티스토리 뷰

War Game Site/rcity

Rcity Medium Operation 8 / WriteUp

우주아줌마 2023. 9. 12. 15:38
728x90
반응형

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" 라는 문자가 나올때까지 디코딩을 돌려 보자 ~

 

''''


 

풀이

 

ASCII text 로ㄹ 65536 라인....

이제 익숙해 졌을거에요 file 로 파일을 확인하는 것이~

flag.txt 파일을 확인 해보니 " very long lines (65536) 라인에 어마어마한 text 가 있는다..

이거 일일이 디코딩 못한다...

이렇게 페이지가 한 6장 넘어간거 같다..

양이 어마어마 하다... 진짜.. 스크립트, 프로그래밍 으로 돌리지 않으면 못찾게 해놨다.....

그래서 스크립트를 짰다.

우선 해야 할것이 지금 이 txt 들을  쓰기 권한이 주어지는 /tmp/ 디렉토리 밑에 내가쓸 디렉토리를 만들고

거기에 text  파일을 옮겨 스크립트를 짜봐야 겠다.(물론 절대경로를 사용해도 된다.)

flag.txt 용량이 11M나 된다.

여기서 스크립트 를 짜서 문제를 풀어 봐야겠다 

 

 

#!/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 가 나왔다

 

음 출력 되었다... 맞는지 확인해 보니 맞다~

 


 

여담

이번 문제는 리눅스 에 스크립트 사용법을 알아 봐라 하는 목적에 문제 인거 같다.

반복문 과 비교문 을 통해 "flag"  라는 문자를 찾는 문제 였으니...

bash 스크립트 가 아니더라도 python 으로 작성 해도 되는데...

왠지.. 파이썬으로 컴파일 하는 게 구찬다...

그리고 스크립트 는 리눅스를  그만두게 되지 않는 이상 쓰야하고 자유자제로 다룰주 알아야 일이 편해지니..

굳이 해봤다... 그리고 중간중간 틀릴대 chatGPT 도움 받았다~

 


 

마무리

문제 의 목적은 자동화 하는 방법을 익히자~

 

 

728x90
반응형

'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
댓글