ZAP Forced User Mode!!

제가 작년부터 ZAP의 Authentication / Authorization 기능들에 대한 이야기를 많이 했었던 것 같습니다. 실제로 테스팅에도 많은 부분들을 적용하고 사용하고 있었습니다.

다만 딱 하나 잘 손이 안가던 기능이 있었는데, 바로 Forced User Mode입니다.

Forced User Mode

말 그대로 User를 강제하는 모드입니다. 우리가 보통 Context에서 Authentication을 설정하고 Spidering, ActiveScan 등에서 User를 선택하여 사용하는데, 이렇게 별도로 선택하지 않고 모든 기능에 해당 User를 기본으로 사용하도록 적용하는 모드입니다.

그래서 위와 같이 해당 상태에서 Proxy를 통해 페이지에 접근하면 자동으로 로그인 처리 후 세션을 설정해줍니다.

결국 로그인을 별도로 안하고 ZAP에서 세팅만 해두면, 매번 다른 계정으로 자동 로그인 처리가 가능한거죠 😍

Example

오늘도 테스트로 고생해주실 Starbucks입니다. Authentication 설정 후 Forced User Mode를 활성화하고 브라우저를 새로 열었습니다. 브라우저가 열리는 동안 ZAP은 자동으로 로그인 처리를 진행하며, 브라우저 화면을 잘 보시면 비인증 사용자에서 인증 사용자로 전환됩니다.

Set user

그러면 Context 내 여러 User 를 등록하고 사용하는 경우에는 어떤 계정이 Forced User로 지정될까요? 바로 Context > Forced User에 명시된 계정으로 사용하게 됩니다.

보통 여러 계정을 기반으로 Access Control 등을 테스트하는 경우 Users 에 다수의 계정을 추가하게 되는데 이러한 설정을 통해서 원하는 계정으로 ZAP을 사용할 수 있도록 변경할 수 있습니다.

Conclusion

저는 Spidering, ActiveScan 등의 기능에서만 사용자를 고정하는줄 알고 관심이 크게 없었는데, Proxy 전체에 사용자를 세팅할 수 있는 것으로 보고 약간 놀랬습니다. 테스트를 하다보면 여러 권한의 여러 계정을 사용하게 되는데 매번 로그인/로그아웃하지 않고 Authentication과 Forced User Mode를 이용해서 쉽게 테스트해볼 수 있겠네요 :D

References

  • https://www.zaproxy.org/docs/desktop/start/features/authentication/
  • https://www.hahwul.com/2021/09/07/authentication-spidering-in-zap/#authentication-spidering