Portfolio/인증과 크롤링
-
웹 소켓으로 주고받는 데이터 크롤링하기(In GOPAX Notice)Portfolio/인증과 크롤링 2019. 2. 21. 23:17
얼마전 블로그 방명록에서 본인이 크롤링을 하고 있는데, https://www.gopax.co.kr/notice 에서 크롤링을 실패했다 는 글이 있었습니다. 해당 페이지에 가서 확인해보니 최초 응답으로 받은 웹 페이지에서도 데이터를 찾을 수 없었고,개발자 도구의 네트워크 탭에서 API로 요청하는 부분도 바로 찾을 수 없었습니다.GOPAX 페이지가 깔끔하게 만들어져 있고, 웹 소켓을 썼을 것 같은 느낌이 들어서요청을 하나씩 확인해 보다가 웹 소켓을 이용해 데이터를 주고받는 부분을 발견했습니다. 그래서 해당 요청을 분석해서 필요한 데이터에 접근할 수 있었습니다.이 과정을 영상으로 만들어 보았습니다.물론 영상은 분석 후 크롤링에 성공한 상태에서 제작하였습니다. 확인해본 결과 유튜브에는 영문, 국문 포함해서웹 소..
-
Facebook 쿠키를 이용해 로그인하면 2단계 인증이 우회된다.Portfolio/인증과 크롤링 2019. 1. 7. 20:46
사용하지 않던 브라우저에서 페이스북에 정상적으로 아이디와 비밀번호를 입력하고 로그인을 하면 다음과 같이 2단계 인증이 뜨면서 6자리 코드를 입력하도록 나옵니다. 그리고 로그인된 장치에는 위와 같이 "최근 확인되지 않은 기기에서 회원님 계정으로 로그인 시도가 있었습니다." 라는 문구가 나온다. 여기서 이 알람을 클릭하여 다음과 같은 화면에서 본인임을 인증하면 로그인할 수 있습니다. 하지만 https://iwantadmin.tistory.com/258?category=311530 에서 처럼 c_user와 xs 쿠키를 사용하여 로그인 처리하면 위와 같은 인증이 필요가 없어집니다. 다음과 같이 2단계 인증이 뜨지 않고 로그인할 수 있는 것을 확인할 수 있습니다. ※ 사진은 기존 사진을 사용하였으나, 실제 시도해..
-
Facebook 쿠키 분석 (c_user, xs)Portfolio/인증과 크롤링 2019. 1. 6. 22:04
오늘은 Facebook의 세션을 인증하는 쿠키에 대해 알아보겠습니다.먼저 다음은 로그인된 상태의 Facebook 쿠키입니다.테스트 환경은 구글 크롬에 EditThisCookie라는 확장프로그램을 사용하였습니다.위에 있는 쿠키 중 붉은색 박스로 표시된 c_user와 xs를 가지고 Facebook에서는 로그인 처리를 하고 있습니다. 다음은 로그인되지 않은 상태(시크릿 모드)에서 확인한 Facebook의 쿠키입니다. 위에 있는 로그인된 상태의 쿠키와 비교해보세요.c_user과 xs가 없는 것을 확인할 수 있습니다. 아래와 같이 로그인된 상태의 브라우져에서 c_user와 xs 쿠키를 복사해서 붙여넣습니다. 복사해서 붙여넣었다면 체크를 눌러 적용시켜줍니다. 그리고 새로고침을 하면 다음과 같이 로그인 처리가 된 것..
-
Daum 쿠키 분석 (HM_CU, HTS, PROF, TS, LSID)Portfolio/인증과 크롤링 2018. 12. 31. 00:05
이번엔 Daum 로그인 쿠키들을 분석해보았습니다.Daum 로그인 쿠키는 앞서 분석했던 Naver나 Youtube와는 달리 쿠키가 5개나 필요합니다.이는 쿠키를 검증할 때 쿠키 내에 있는 값을 이용해 상호 검증을 하기 때문으로 보입니다. 그래서 TS 쿠키로 TimeStamp 값을 같이 보내지 않으면 로그인 처리가 되지 않았습니다. 다음은 로그인된 상태의 다음 계정입니다. - 로그인된 상태의 다음 계정 - - 로그인된 상태의 다음 쿠키 - 빨간색으로 표시된 쿠키가 로그인 처리에 필요한 쿠키입니다.이리저리 실험을 해보다 보니 위 다섯개 쿠키가 필요한 것을 확인했습니다.여기서 특이한 점은 LSID 쿠키가 없어도 로그인 된 것처럼 처리가 된다는 것입니다.LSID는 UUID(https://ko.wikipedia.o..
-
Youtube 쿠키 분석 (HSID, SID, SSID)Portfolio/인증과 크롤링 2018. 12. 25. 03:21
이번 글은 Youtube의 세션과 관련된 쿠키를 확인해보겠습니다.다음 사진은 로그인된 상태의 Youtube 쿠키들입니다. 하나씩 빼보면서 테스트 해본 결과 HSID, SID, SSID 이렇게 3개만 있으면 세션을 유지할 수 있는 것으로 확인했습니다. 시크릿 모드에서 EditThisCookie를 이용하여 새로 쿠키를 생성하고 새로고침을 하였습니다. 그랬더니 로그인된 상태임을 확인할 수 있는 썸네일이 뜨고, LOGIN_INFO라는 쿠키가 추가적으로 생성된 것을 확인할 수 있습니다.
-
NID_AUT와 NID_SES 쿠키를 이용한 네이버 로그인 처리Portfolio/인증과 크롤링 2018. 12. 21. 18:28
네이버 웹툰 다운로더를 만들면서19세 이상 인증이 필요한 웹툰을 다운로드를 구현하다가 막혔다.로그인 처리가 되도록 해야하는데, ID 비밀번호를 입력하고 그걸 이용해서 로그인 처리를 할까도 생각해보았으나,그리 좋은 방법은 아닌 것 같기도 하고, 네이버에서 세션을 어떻게 처리하고 있는지 확인해보기 위해서 확인도 해볼겸네이버로 로그인 한 상태의 쿠키들을 확인하다가 NID_AUT와 NID_SES가 세션을 처리한다는 것을 알아내었다. 다음은 로그인 된 상태의 개발자도구에서 확인한 네이버의 쿠키이다. 위에서 확인할 사항은 NID_AUT, NID_SES의 쿠키값(Value)과 Domain이다.현재 comic.naver.com 도메인으로 들어가 있는 상태이지만위 두개의 쿠키는 comic.naver.com의 상위 도메인..
-
Referer를 이용한 네이버 웹툰 크롤링Portfolio/인증과 크롤링 2018. 12. 18. 23:02
HTTP의 요청 헤더 중 하나인 'Referer'은 현재 페이지의 이전 페이지를 가리킨다.때문에 Referer헤더는 해당 사용자가 어디에서 온지를 알 수 있기 때문에 방문자에 대한 로그를 기록하여 통계를 내는 등에 활용할 수 있다.사실 이 referer은 refferer이 되어야 했다. RFC 문서에서 refferer를 referer로 f를 하나 빼고 적었기 때문에 그대로 referer로 사용되고 있다. (자세한 내용) 본론으로 들어가 이 글에서는 네이버 웹툰 다운로더에서 사용된 Referer 헤더 변경을 통한 웹툰 이미지 다운로드에 대해 알아보겠다.먼저 네이버 웹툰 이미지에 대한 간단한 request를 작성해서 날려보았다.referer이 없는(주석처리 된) 코드는 실행하면 다음과 같은 결과를 보여준다...