ZAP에 필요한 기능과 Burp suite 듀얼 체제로 느낀점

최근에 ZAProxy 관련글을 쭉 작성하고 있습니다. Burp + ZAProxy 구성으로 진단하는 것에 대해 테스트해보고 적응하는 단계였는데, 한 1~2주 지났을까요? 전보다 확실히 익숙해진 것 같습니다. 이젠 단독으로 ZAProxy 써도 크게 불편하진 않을 것 같네요. 오늘은 관련 글의 마지막 부분으로 앞으로 적용해야할 것들에 대한 이야기를 하려합니다.

후기

오픈소스 툴치고 상용 프로그램과 크게 차이 안날 정도로 많은 기능을 지원하고 생각보다 편리해서 놀랬습니다. Burp suite 쓴 기간이 전체 해킹/보안 경력에서 90퍼 이상을 차지할만큼 압도적으로 많을텐데, ZAP을 써보고 새롭게 느낌점들과 ZAP을 앞으로도 활용하기 위해 중요한 것들이 몇가지 생각났습니다. 물론 주관적인거지만, 비슷한 고민을 하는 분들이 있다면 참고할 사항은 되지 않을까 싶네요 :)

앞으로 필요한 것들

이 부분에서 이야기드리는건 추가해서 git, zaproxy쪽으로 공개할 예정입니다. 쉽게 가능할 것 같은 부분부터 어떨지 판단이 안서는 부분이 있으니 기대는 안하시는게 정신 건강에 좋을듯합니다.

History Tab의 Column들

사실 XSS 찾는데 있어서 중요하게 보는 부분 중 하나가 History tab 입니다. 여기서 포인트를 잡고 Repeater(Requester)로 규칙에 대해서 분석하게 되는데, 포인트를 잡는 과정에서 Burp보다 불편한 부분이 있었습니다.

Content-Type(MIME)

첫번째로는 Content-Type(MIME)의 부재입니다. Reflected XSS는 대체로 text/html, 특히 callback function을 가지는 API 요청에선 빈번하게 발생하는데 Histor 탭에서 구별이 간다면 쉽게 걸러서 테스트 할 수 있죠. 아직 ZAProxy 에는 MIME를 볼 수 없습니다 😭

Reflected 파라미터

두번쨰로는 Reflected 된 파라미터에 대한 정보입니다. 이것도 XSS에서 우선적으로 필요한 부분이지만 포인트로 많이 걸러내게 되는 부분이라 중요하다고 생각됩니다. Burp suite에서도 기본적으론 제공해주지 않고 있어서 flow 같은 확장 기능으로 커버하게 됩니다.

위 2가지 사항은 확장 기능이나 Script 작성으로 해결이 가능한 부분입니다. 다만 Reflected Param은 데이터를 뽑아오기가 조금 어렵다고 하네요. (Zaproxy lead에 의하면..)

좋은 로직이 필요할 것 같습니다. 입력값과 같은 데이터가 페이지에 많을 가능성도 높고, 특수한 문자들을 붙여주었을 떄 비정상 동작하는 경우도 있을터이니, 타이트한 로직이 필요할 것 같네요.

2022년 기준으로 안 불편합니다. reflect 라는 addon 도 있고, 이를 커버해줄 많은 기능들이 있었네요 😊

Issue tab

이건 Burp suite 쓸떄도 약간 고민이였던 부분인데, 찾은 취약점의 Raw data를 기록해두기가 조금 번거롭습니다. Burp suite에선 Repeater이 각 탭의 이름을 매겨서 남겨두긴 하는데, 이게 Repeater의 탭이 100개가 넘어가면 가독성이 현저히 떨어집니다..

그래서 별도의 탭? 으로 구성할 수 있으면 좋을 것 같단 생각을 했었는데요, 약간 머리 굴리면 Zaproxy에서 쉽게 가능할 것 같습니다.

저기다 넣고 써도 괜찮을 것 같아요 !

예를들면 위와 같이 Alert 탭을 이용해 구성할 수 있을 것 같습니다. 임의의 Alert 템플릿을 만들어놓고, Context menu로 우클릭해서 제가 지정한 템플릿에 집어넣을 수 있으면 쉽게 정리가 될 것 같습니다. 겸사겸사 Reporting 해주는 확장 기능도 있기 때문에 조합해서 .html , pdf 등으로 뽑아낼 수 있을 것 같구요.

이것도 물론 2022년 기준으로 Requester라는 Addon과 All in one note Addon이면 불편하지 않습니다. 그리고 Alert 내부에도 retest 같은 기능이 추가되어서 글 작성 당시라는 차이가 많이 납니다.

Conclusion

필요한 것들은 위애 적었고.. 느낌점을 조금 공유할까 합니다. 두 툴을 동시에 사용해보니 확실히 취약점 분석에 대한 부분 자동화에 대한 욕구가 강해졌습니다. Burp로도 많은 부분이 가능하지만, 확장 기능을 통해 구현해야하기 때문에 좀 불편한 부분들이 있습니다. 이런면에서 ZAProxy는 생각한 것을 적용하기 쉽다는 이점이 있어 스크립트, 코드 추가로 필요한 기능들을 붙이기 쉬울 것 같단 생각이 들었고, 디버거 느낌으로 Proxy를 잡아서 보기 때문에 Flow 적인 분석에서 강하단 느낌을 받았습니다. 이는 Fiddler쪽 분석 봤을때도 비슷한 느낌이였었죠.

그리고.. 2개 동시에 쓰는 것에 대해 포스팅도 있었는데요… PC 사양 어지간한거 아니면 못버팁니다. 그램은 포기했고 맥프로도 버거워하네요.

저처럼 써보실꺼면, 웹 브라우저 창을 적게 줄여 다른 리소스를 확보하던지, 2컴을 쓰시는게 건강에 이롭습니다. 아 물론.. 패시브/액티브 스캔이 문제니, 양쪽 툴 모두 적당히 성능 조정하면 부담 없습니다 :)

그럼 Burp , Zaproxy를 이용해서 즐거운 해킹되시길 :)