이제 Interact.sh 가 ZAP OAST에서 지원됩니다

최근에 ZAP OAST(Callback 기능)에 projectdiscovery의 Interactsh 지원이 추가되었습니다. 약 2주전에 commit 됬고 저도 인지한지 좀 됬었는데, 이제서야 글로 작성하네요 😁

https://github.com/zaproxy/zap-extensions/commit/61ca54d4d031d9a57c9e84eff6f8b118d850eae4

What is Interactsh?

Interactsh는 projectdiscovery에서 개발한 OOB(Out-Of-Band)를 위한 테스팅 도구로 공개 당시에는 웹 서비스인 https://app.interactsh.com/#/ , 현재는 오픈소스화 되어 소스코드까지 공개된 상태입니다.

간단하게 소개하자면 SSRF, Blind 계열의 취약점, RCE 등 서버에서 어떤 액션이 일어났는지 식별하는 방법중에 많이 사용되는 OOB 테스팅의 Callback 서비스로 DNS, HTTP 등의 요청을 interactsh가 받았을 때 기록해두고, 사용자에게 이를 보여주어 실제 공격이 유효 했는지 알 수 있도록 도와주는 도구입니다.

제가 예전에도 한번 글로 다뤘었는데, 거의 비슷한 내용이긴 하지만 아래 글을 참고해주세요!

https://www.hahwul.com/2021/05/01/oob-testing-with-interactsh/

Make interactsh Payload

Options > OAST에 Interactsh 탭이 추가되었습니다. 해당 탭에서 New Payload 버튼을 통해 callback URL을 생성하고 사용할 수 있습니다.

아래 Active Payloads에서 Payload 부분을 복사해서 사용하시면 됩니다.

Interactsh Web UI?

아쉽게도 Interactsh의 Web UI를 사용할 수 없습니다. 그러나 일주일전에 projectdiscovery가 interactsh 의 web-ui를 오픈소스화 했기 때문에 이를 로컬에 구축하고, 로드하여 사용하는 형태로는 가능할 것 같습니다.

https://github.com/projectdiscovery/interactsh-web

Advantages of interactsh

기본적으로 OAST, Interactsh, Burp collaborator 모두 DNS와 HTTP 등 OOB, Callback 을 위한 기능들을 잘 지원합니다. 다만 Interactsh 는 이러한 기본적인 callback 기능 이외에도 여러가지 기능을 제공하고 있어서, 어렵지 않게 slack-ci 등 테스팅을 위한 자동화 플로우에 녹일 수 있습니다.

interactsh-client를 이용한 slack notify

Conclusion

확실히 ZAP은 오픈소스 도구인만큼, BurpSuite 보다는 동일 기능에 대해서 좀 더 여러가지 오픈소스 도구들을 사용할 수 있도록 제공해주고 있습니다. ZAP Core팀이 운영하는 OAST(odiss.eu), projectdiscovery의 interactsh 모두 burp collaborator와 동일한 기능을 가지기 때문에 무엇을 선택하더라도 불편한점은 없을겁니다.

더 나아가 만약 ZAP을 사용하신다면 OAST나 Interactsh의 추가적인 기능과 다른 도구와의 연동, 추가적인 개발을 통해서 OBB, Callback 기반 테스팅을 강화할 수 있는 방법들이 많이 있을겁니다.

어쨌던 취향에 따라 알맞는 OOB 도구를 사용하시길 바래요 :D

References