Babysheets 문제

2023. 7. 5. 00:06Hawkis_CTF

 

CTF 문제

 

 

https://url.kr/epdwg1 접속 시 아래 사진처럼 스프레드시트 내용 출력

 

 

A1칸에 있는 수식 및 함수를 살펴보면 

 

=REPLACE(IMPORTRANGE("https://docs.google.com/spreadsheets/d/1PNcq-ekPCPzVnMMulUSIxWYOdixT2xjyzxgr6YldFns/edit","A1"),8,15,REPT("?",30-8))

 

https://docs.google.com/spreadsheets/d/1PNcq-ekPCPzVnMMulUSIxWYOdixT2xjyzxgr6YldFns/edit 라는 링크가 있다

 

이 URL에 접속하면 스프레드시트에 엑세스 하려면 권한이 필요하다고 뜬다

이는 이 URL도 스프레드시트의 주소이지만 권한이 없어 열람이 불가하다는것을 알 수 있었다.

 

따라서, 다시 돌아와 A1에 있는 수식 및 함수를 분석하자면 아래와 같다

 

REPLACE(텍스트, 위치, 길이, 새_텍스트) " 텍스트 문자열의 일부를 다른 텍스트 문자열로 대체 "

텍스트
: 일부가 대체될 텍스트(대상)

위치
: 대체를 시작할 위치(1부터 시작)

길이
: 텍스트에서 대체될 문자의 개수

새_텍스트
: 원래 텍스트에 삽입될 텍스트(대상에 들어갈 문자)
IMPORTRANGE(스프레드시트_URL, 범위_문자열) " 지정된 스프레드시트에서 셀 범위를 가져옴 "

스프레드시트_URL
: 가져올 데이터가 있는 스프레드시트의 URL

범위_문자열
: 가져올 범위를 지정하는 형식"[시트_이름!]범위"(예: "Sheet1! A2:B6" 또는 "A2:B6")의 문자열

 

 

즉,  IMPORTRANGE 함수로 https://docs.google.com/spreadsheets/d/1PNcq-ekPCPzVnMMulUSIxWYOdixT2xjyzxgr6YldFns/edit 라는 시트의 A1부분을 가져오는데 그 값이 hawkis{~~~~~~~} 형식이며 {}안에 내용을 REPLACE 함수를 이용해 8~15번까지의 문자열을 "?" 문자로 변경시켰다는것이다.

 

 

그래서 "?"로 가려진 내용을 알아내기 위해 고민을 하였다

 

 

시도 과정

 

flag를 가린 "?"문자들을 없애기 위해 REPLACE 함수를 지우고 값을 불러오는 함수인 IMPORTRANGE만 남겨놓으면 Flag값이 나타나지 않을까 생각하였고

 

 

읽기 전용이라 수정이 불가하기에 F12 개발자도구에서 Elements 패널을 들어가 함수부분의 HTML을 찾았고

 

IMPORTRANGE("https://docs.google.com/spreadsheets/d/1PNcq=ekPCPzVnMMulUSIxWYOdixT2xjyzxgr6YldFns/edit","A1")  부분만 남겨놓고 다 지워보았다.

 

하지만, flag값이 나타나진 않았다.

 

그래서 HTML상에서만의 변화여서 기능실행이 안될까 싶어

 

보기전용을 수정 가능한 권한으로 바꿔 다시 입력해보고자 하였지만 실패하였고

 

https://docs.google.com/spreadsheets/d/링크ID/edit#gid=0000000000
https://docs.google.com/spreadsheets/d/링크ID/preview

 

URL 뒤에 위와같이 입력하면 미리보기로 넘어가고 셀 서식이 보이기기 때문에 

 

혹시나 "?" 부분이 사라지고 Flag가 보일까 싶었지만 실패하였다.

 

 

 

Flag 획득 과정

 

여러 시도 끝에

 

권한이 없는 스트레드시트(URL)에서 해당 정보(hawkis{~~~~~~~~})를 baby sheet로 보내는 과정에 분명 흔적이 남을 것이라는 생각이 들었고

 

 

 

 

baby sheet에서 F12 개발자 도구를 열어 Network 패킷을 확인하였다

 

새로고침을 했을때 여러 패킷들이 날라왔고 

 

2가지 방법으로 Flag 값을 얻을 수 있었다.

 

 

 

1번째) 

 

패킷들에서 권한 없는 스트레드시트의 URL 주소중 일부인  1PNcq-ekPCPzVnMM 검색 시,

 

fetchData 라는 이름의 패킷의 Response를 확인할 수 있었고 hawkis{n3tw0rk_4nd_w3b} 라는 flag값을 얻었다

 

 

 

 

2번째)

 

마찬가지로 Network 패킷에서 

 

CTF 의 Flag 양식의 앞부분인 hawkis를 검색하였을때

 

fetchData 라는 이름의 패킷에서 hawkis{n3tw0rk_4nd_w3b} 라는 flag값을 얻을 수 있었다

 

 

'Hawkis_CTF' 카테고리의 다른 글

WHITE Space 문제  (0) 2023.09.21
Babyforms 문제  (0) 2023.07.04
하위 문제  (0) 2023.07.04
Plz Recovery 문제  (0) 2023.07.03
과유불급 (Hawkis_CTF) write-up  (0) 2023.05.29