Who are you?

HackBeom·2022년 10월 24일
0

picoCTF_WriteUp

목록 보기
9/18


여태 풀었던 문제 중에 제일 재미있었던(?) 흥미로웠던(?) 거지같았던 문제이다.

해당 문제를 풀기 전에 사전 지식이 있으면 매우 매우 매우 편하다.
바로 HTTP Header에 관련한 기본 개념이다.

HTTP_Header 개념 및 정의
해당 사이트를 참조하여 개념을 파악한 뒤 이 글을 보는 것을 추천한다.

Only people who use the official PicoBrowser are allowed on this site!
=> 공식 피코브라우저를 사용하는 사람만 이 사이트에 들어갈 수 있습니다!

User-agent

현재 사용자가 어떤 클라이언트(운영체제와 브라우저 같은 것)를 이용해 요청을 보냈는지 나옵니다.

버프를 이용하여 헤더값을 변경하면

User-Agent: PicoBrowser 로 바꿔서 전송

I don't trust users visiting from another site.
=> 다른사이트에서 방문하는 사용자를 신뢰하지 않는다.

Referer

현재 페이지로 연결되는 링크가 있던 이전 웹 페이지의 주소입니다.

Referer: http://mercury.picoctf.net:52362/ 로 추가하여 전송

Sorry, this site only worked in 2018.
=> 해당 사이트는 2018년도 에만 사용이 가능하다고 한다.

Date

메시지가 발생한 날짜와 시간을 포함합니다.

Date: Wed, 21 Oct 2018 07:28:00 GMT 를 추가 후 전송

I don't trust users who can be tracked.
=> 추적할 수 있는 사용자를 신뢰하지 않습니다.

DNT

사용자의 추적 설정을 나타내는데 사용됩니다.

DNT: 1 추가 후 전송

This website is only for people from Sweden.
=> 이 웹 사이트는 스웨덴 사람만을 위한 것이다.

X-Forwarded-For

HTTP 프록시나 로드 밸런서를 통해 웹 서버로 연결하는 클라이언트의 시작 IP 주소를 확인합니다.

XFF개념설명
해당 블로그 참조하여 개념 정확하게 잡고 가기

XFF를 활용하여 X-Forwarded-For: 스웨덴 IP 추가 후 전송
ex) X-Forwarded-For: 31.3.152.55

You're in Sweden but you don't speak Swedish?
=> 당신은 스웨덴에 있지만 스웨덴 언어를 할 줄 모르나요?

Accept-Language

서버가 돌려주기로 예상된 언어에 대해 서버에 알립니다.

Accept-Language: sv,en;q=0.9 추가 후 전송

picoCTF{http_h34d3rs_v3ry_c0Ol_much_w0w_0c0db339}
플래그 획득

이와 같이 버프를 이용하여 문제를 해결할 수 도 있지만
curl을 사용하여도 된다.
아래는 curl을 사용한 문제 해결 방법이다.


위 사진처럼 한줄로도 해결이 가능하다.

curl --user-agent "picobrowser" --referer "http://mercury.picoctf.net:52362/" -H "Date: Mon, 23 11 2018 23:23:23 GMT" -H "DNT: 1" -H "X-Forwarded-For: 2.71.255.255" -H "Accept-Language: sv-SE" http://mercury.picoctf.net:52362/

0개의 댓글