132
1
부
정찰
끝으로 페이로드에서 예상되는 변수의 이름을 알지만 값을 모른다면, 브루트 포스 방식으로 여
러 가지 요청을 시도해 알아낼 수 있다. 브루트 포싱을 수작업으로 하는 것은 확실히 느리기 때
문에 스크립트를 사용해 속도를 높이는 것이 좋다. 예상되는 변수에 대한 규칙을 많이 알아낼
수록 좋다. 예를 들어
auth
_
token
이 항상
12
자로 이뤄진다는 규칙을 알아냈다면 아주 좋은 일
이고 항상
16
진수로 되어있다는 것도 알아냈다면 더욱 좋은 일이다. 규칙을 더 많이 알면 알수
록 브루트 포스에 성공할 가능성이 높아진다.
필드에 대해 가능한 조합의 목록을
솔루션 공간
solution
space
이라고 한다. 솔루션 공간을 최소한으
로 줄이는 것이 유리하다.
유효한 솔루션을 검색하는 것보다 유효하지 않은 솔루션을 검색하는 것이 나을 수도 있다. 이
는 솔루션 공간을 줄이는 데 도움이 되며 애플리케이션 코드에서 새로운 버그를 찾아낼 가능성
도 있다.
5.4
마치며
애플리케이션의 서브도메인에 대해 어느 정도 감을 잡았으면(어떤 형태로든 기록해두면 더 좋
다) 그 다음 할 일은 그러한 서브도메인에서 호스팅되는
API
엔드포인트를 찾는 것이다. 이는
나중에 그 목적을 판단하는 데 도움이 된다. 이것은 단순한 단계인 것처럼 보일지 모르지만 매
우 중요한 정찰 기법이다. 상대적으로 보안이 약한 엔드포인트에서도 비슷한 기능이나 데이터
를 찾을 수 있음에도 보안이 잘된 엔드포인트를 가지고 씨름하느라 시간을 소모할 수 있기 때
문이다.
API
의 엔드포인트를 찾으면 ...