Back
Featured image of post Get webpage screenshot with gowitness for CICD

Get webpage screenshot with gowitness for CICD

What is gowitness

gowitness는 버그바운티 커뮤니티에서 잘 알려진 도구로 대량의 URL을 대상으로 웹 스크린샷을 빠르게 찍을 수 있는 도구입니다.

https://github.com/sensepost/gowitness

저도 예전부터 굉장히 잘 쓰고 있던 도구인데 지금보니 따로 블로그 글로 포스팅한 적이 없는 도구였네요. 아무튼 오늘은 도구에 대한 소개보단 제가 나중에 Pipeline 구성 시 사용하려고 간략하게 메모하는 느낌으로 글 작성하려고 합니다.

golang 기반 도구라 설치는 go get으로 간단히 가능합니다.

$ go get -u github.com/sensepost/gowitness

Format of Result

gowitness는 기본적으로 sqlite 를 사용하고 있고, 미리 만들어진 HTML Report 포맷에 맞춰 결과를 보여줍니다.

115965578-e27baa00-a564-11eb-9d1d-46f4ed61b8c9

물론 단순히 결과를 확인하려는 목적이라면 기본적으로 제공되는 Report를 사용하면 되겠지만, 때에 따라서 Pipeline이나 CI/CD 등의 구성을 위해 스캔 결과에 대한 데이터가 필요할 수 있습니다.

보통 gowitness의 옵션 중 report 옵션으로 HTML 기반 리포트를 생성하는데, 관련 문서를 잘 찾아보니 sqlite 에서 summary만 뽑아서 출력할 수 있는 옵션이 있더군요. 이를 활용하면 쉽게 JSON 형태로 결과를 뽑아낼 수 있습니다.

Scanning multiple URLs

$ gowitness file -f hosts

Get JSON Result

$ gowitness report list -j
{"url":"https://www.hahwul.com","final_url":"https://www.hahwul.com","response_code":200,"response_reason":"200 OK","proto":"HTTP/1.1","content_length":-1,"title":"HAHWUL","file_name":"https-www.hahwul.com.png"}
Licensed under CC BY-NC-SA 4.0
Last updated on Jul 10, 2021 01:05 +0900