@마크다운
나는 웹페이지가 어떤언어로 구성되어있는지 찾아보는걸 상당히 좋아한다.
궁금한 웹페이지가 생기면 가장먼저 입력해보는것이 domain path에 admin,robots.txt,sw.js를 가장먼저 입력해보는것이 습관이 되었다.
나오는 데이터들을 통하여 가장 기초적인 분석을 시작해본다.
# 에러가 나오면
커스텀된 에러인지 백엔드에서 디폴트 에러페이지로 설정되어있는것인지 확인한다.
디폴트 에러페이지로 의심된다면 에러메시지로 나오는 문장을 구글에다 입력하면 유사한 이미지들을 확인할 수 있는데,
그 이미지를 확인하면 어떤 언어로 만들어졌는지 알 수 있다.
# 개발자도구 sources
일단 웹은 클라이언트에서 소스를 받아서 실행하는 것이기에 파일을 숨긴다는것은 불가능하다.
다만 난독화가 되어있거나 성능향상을위해 공백과 엔터들을 모두 줄여서 min파일을 보통 추가하는데,
개발자 도구의 sources 탭에가면 파일들을 확인할 수 있다.
그 코드들을 [beautifier](http://jsbeautifier.org/)
여기에 코드를 입력해주면 자동으로 보기 좋게 바꿔준다.
그 후 import되어있는 js파일들을 확인해보고
무엇을 쓰고 있는지 확인 해본다.
아까 위에서 말했듯이 소스를 숨기는건 불가능 하기에 개발자들이 작성한 주석들도 볼 수 있는데, 주석에서 힌트를 얻는 경우도 꽤나있다.
# 개발자도구 network
다음으로 network탭에서 파일들의 URL들을 확인하여 storage에서 파일들을 가지고오는지를 확인하여 어떤 클라우드 서비스를 사용하는지 분석할 수 있다.
그리고 가장 최근에 알게된건 network에서 제일 위에 있는파일(루트도메인)을 눌러서 헤더정보를 뜯어보면
웹서버에 대한 정보가 나오고
set-cookie에 변수값을 유추하여 백엔드 언어와 프레임워크를 유추해낼 수 있다는것이다.
위의 정보는 cmd 에서 curl 명령어로도 알아낼 수 있다.
curl -I URL을 입력하면 동일한 정보를 받아낼 수 있다. (다른경우도 있다!)
> -I 옵션은 request의 head데이터만 보여주는 옵션이다.
# 크롬 확장도구
프론트 프레임워크별 dev tools를 확장프로그램에 추가하여 프레임워크를 체크를 할 수도 있으며,
wappalyzer 라는 확장프로그램을 추가하면 js파일들의 정보부터 웹서버 백엔드 언어까지 유추하여 알려준다. (충격쇼크)
shodan 이라는 확장프로그램도 있는데 서버의 ip에서 열려있는 포트들도 알려준다.
# 주의
서비스를 제공하는 업체들이 보통은 알려줄 필요가 없는 정보들을 유추해내는 것이기에 정보가 완벽하다고 할 수 없으며,
일부러 허점을 노출시켜 (ex. 파일 확장자를 실제 서비스 언어와 다른걸 일부러 적는다거나..) 해커들을 헛고생을 시키는 방법도 있다고 한다.
나 또한 웹을 공부하는 사람으로써 알려줄 필요가 없는 정보들이라 생각하며, 나는 반드시 숨겨야 겠다(ㅋㅋㅋㅋㅋㅋㅋ)는 생각을 했다.
'etc' 카테고리의 다른 글
한강수온 크롤링 (selenium,phantomjs,beautifulsoup) (1) | 2017.12.22 |
---|---|
스레드를 사용한 이메일 비동기 전송(django email) (0) | 2017.11.08 |
elastic beanstalk (API 서버token 인증이 안될때) (0) | 2017.11.01 |
elastic beanstalk (geo django 사용시 에러) (0) | 2017.11.01 |
임시저장저장 (0) | 2017.10.10 |