웹 해킹의 기본적인 기술과 이론적인 기초를 다지려고 한다.
대표적인 웹 애플리케이션의 취약점을 학습하고 테스트 도메인에서 직접 공격해본다.
여러가지 기술과 취약점을 나열하고 분석해보자.
이제 Penetration Tester로서 웹사이트 혹은 웹 애플리케이션을 검토해보면, 잠재적으로 취약점을 가질 수 있는 기능을 악용해서 취약점을 평가할 수 있다.
일반적으로는 유저와의 상호작용이 필요한 웹사이트의 부분에서 나온다.
로그인이 대표적이라고 할 수 있다. 크롬, 파이어폭스, 사파리 등의 브라우저를 사용해 웹사이트를 탐색하고 여러가지 기능을 파악해볼 수 있겠다.

tryhackme에서 제공하는 테스트 웹사이트의 기능을 요약한 표다.
웹사이트에서 보고있는 화면의 소스코드를 볼 수 있다.
브라우저에 어떤 콘텐츠를 어떻게 표현할지 알려주고 JS로 상호작용 요소를 추가한 코드를 볼 수 있다.
다른 누군가가 작성한 코드를 읽는다는 것은 사람에 따라서 매우 고될 수 있다. 하지만 그 소스 안에 어떤 정보가 숨어있거나 미처 지우지 못한 상태의 메세지를 남겼다면 그것은 엄청난 취약점이 아닌가.

HTML, CSS, JS로 작성된 코드를 어느정도 파악할 수 있어야겠다.
header와 body에 작성되는 내용이 주로 어떤 내용인지 자세하게 알 필요는 없지만
주로 확률이 높은 곳을 분석하는 것이 좋지 않겠는가. 그렇다면 그 확률이 어디에 분포되는지 알아야한다!
위 코드에서 <!-- ... -->의 안에 들어가는 텍스트는 주석인데, 이것을 주의해야할 때가 있다. 웹사이트 개발자에 의해 남겨진 코드인데, 다른 개발자에게 코드를 직접 설명하거나 그냥 메모일 수 있다.
@ /new-home-beta
이렇게 주석이 표시된 경우에 해당 페이지가 개발 중일 확률이 매우 높다는 것을 어렵지 않게 파악할 수 있다.
물론 주석에만 존재하는 것이 아니다. <a href='/secret-page'>to</a> 라는 코드는 정말 수상해보이지 않는가,,

이런 식으로 url을 작성하거나 저 메세지가 있는 부분을 클릭해보면 접속할 수 있게 돼있다.
주로 어떤 프로젝트에 자산으로 사용되는 파일이 저장된 assets를 확인할 수 있다.


.txt, .js, .png 등 여러 파일이 저장된 디렉토리를 매우 개방적으로 관리하고있다.
마지막줄에 존재하는 주석에 response 시간과 버전이 명시돼있고 프레임워크 사이트가 표시돼있다.

로그를 보면 1.3버전에서 1.2의 백업 파일 이슈를 해결했다고 하는데 /tmp.zip 디렉토리에 생성됐다는 이슈라고 한다.


주석에 1.2버전이라고 했으니 정말 백업파일이 생성된다는 것을 볼 수 있다.