<!-- Hint : Make your point to 50 & 'SuNiNaTaS' -->
힌트가 소스코드에 있었다.
50을 만들으라고? plus를 누르는 순간 1이 올라간다.
해당 함수의 동작원리는 도통 모르겠다. 뭐라는거야..
컨트롤러딴에서 리다이렉트 때려주는거 같긴한데.. (고수님들 알려주세요.)
버튼도 onclick = submit(); 으로만 되어있고 함수도 당최 보이질 않으니.
어쨌든 올라가는 것을 확인하고 광클을 해댔다. 그렇게 쉬울리가 전혀. 없다.
역시나, 25가 되니까 I like the SuNiNaTaS browser! 라는 얼럿이 뜬다. 그리고 숫자는 더이상 올라가지 않았다.
아래 User-Agent라는 항목이 있었고 크롬이 눈에 들어왔다.
옆에 나와있는 것은 업데이트 버전인가?
그럼 릴리즈 노트를 봐야겠다고 생각했다.
보안패치 내용인듯 하다. 이 문제랑은 관련이 없는 것 같다.
덧, 알게된 사실은 보안 수정 사항을 찾은 사람에게 상금으로 5천만원을 수여했다고 한다.
그 사람이 3천만원을 연달아 또 탔다는 것도..
다시 원점이다.
현재까지 얻은 단서는 이렇다.
A. plus 버튼을 누르면 1이 오른다.
B. 25에서 올라가지 않는 숫자.
C. I like the SuNiNaTaS browser! alert
D. user-Agent.
>> Mozilla/5.0 (iPhone; CPU iPhone OS 13_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/101.0.4951.64 Mobile/15E148 Safari/604.1
가만, user-Agent?
나는 분명 이것을 어딘가에서 봤다.
네트워크 탭의 가장 마지막에 있었다. 그것도 같은 내용이.
후... 공부하자.
즉, 내 브라우저의 식별 정보라는 뜻이다.
아 그 버전이 어쩌구 뜨던게 텍스트로 박힌게 아니라 내꺼였다고??
What is my User Agent? 라는 링크를 타고 가보니 좀 더 정확해졌다.
참고사이트.
https://www.whatismybrowser.com/detect/what-is-my-user-agent/faq/what-is-a-user-agent
What is a user agent?
Wondering what a user agent is? Do I have a user agent? We've got a guide to explain it all to you in simple terms.
www.whatismybrowser.com
>>사용자 에이전트는 "보통" 인터넷 사용자가 보거나 처리할 수 없으며, 많은 인기 있는 사용자 에이전트 형식 뒤에는 길고 복잡한 유산이 있어 상황을 더욱 복잡하게 만듭니다.
사용자 에이전트는 웹 사이트에 사용 중인 브라우저를 알려줍니다.
그렇다. 사용중인 브라우저를 알려준다.
그래서. 뭐?
User-agent를 뭘 어쩌라는 걸까....
다시 구글 신에게 도움을 요청했다.
>>User-agent를 SuNiNaTaS로 변조하면 된다는 답변을 받았다. 옳거니!
근데 프로그램을 가지고 뭘 해야한단다. Burp Suite.. 라고
난 해당 프로그램을 사용할 줄도 모르거니와, 그렇게까지 해야한다고?? 라는 의문이 들었다.
아니다, 뭔가 분명 방법이 있을 거라 믿는다.
아까 봤던 사이트가 아직 남아있어서 좀 더 읽어보기로 했는데 이런 질문이 있었다.
If I change my user agent can sites still detect my browser?
사용자 에이전트를 변경해도 사이트에서 여전히 내 브라우저를 감지할 수 있습니까?
답은 아니다.
>> 브라우저에서 보내는 사용자 에이전트를 변경하는 것만으로도 일반적으로 대부분의 사이트에서 사용자가 다른 웹 브라우저를 사용하고 있다고 생각하도록 속일 수 있습니다.
그랬다. user-agent를 변경하여 다른 정보를 보내면 다른 웹브라우저를 사용하고 있다고 웹페이지는 속는다.
즉, 변조가 얼마든지 가능하다는 것이다.
>>내장 개발자 콘솔을 사용하여 브라우저가 요청과 함께 보낼 사용자 에이전트를 수동으로 변경할 수 있습니다.
다시 힌트를 얻었다.
개발자 콘솔을 사용하여 user-agent를 바꿀 수 있었다.
개발자 콘솔에서 도구 더보기를 클릭하면 네트워크 조건이라는 항목이 있다.
그렇다. 사용자 에이전트 값을 바꿀 수 있었다.
핸드폰 기종별로 반응되는 웹페이지를 보기 위해서 크롬이 준비해놓은 것이 있었다.
맞춤 설정으로 바꾸고 SuNiNaTaS로 바꾼 후 plus 버튼을 누르면
내용이 바뀌어있는 것을 알 수 있다. 1부터 시작이었지만 다시 50번의 광클이 이어지고.(이런건 전문이지.)
Auth Key가 나온다. 입력해주자.
User-Agent 라는 것을 배우게 되었다.
평소엔 관심도 없이, 네트워크의 헤더가 어떻게 가고있는지도 모른채. 코딩하던 나에게는 신선한 충격이었다.
알아두어야 할 것들이었다.
전혀 몰랐는데 나는 인터넷을 할때 28가지의 내용을 head에 보내고 있었다.
https://www.whatismybrowser.com/detect/what-http-headers-is-my-browser-sending
What HTTP Headers is my browser sending?
Every time your web browser sends a request it includes a series of HTTP headers; this page tells you which ones you are sending.
www.whatismybrowser.com
간과하지 말고 배워야할 것이 정말로 산더미다. 오늘도 이렇게 나는 문송했다.
문송함을 없애기 위해 공부할 내용은 아직도 차고 넘친다.
header에 대한 공부거리를 뒤로 남긴채, 레벨 4가 끝났다. (공부할 게 태산이로다.)
덧붙여 프로그램을 사용하지 않고도 해결해서 뿌듯하다.
역시 써니나타스는 문제를 통해서 나를 학습시키고 있었다. (이사이트 만든사람은 진짜 천잰가보다)
레벨 30까지 더 나은 개발자가 되길 바라며.
'be prepared! codingTest > SuNiNaTaS' 카테고리의 다른 글
challenge-level3 (0) | 2022.05.16 |
---|---|
challenge-level1 (0) | 2022.05.16 |