ZAP의 Site tree는 Burp와는 다르게 404 Not found도 보여주고 있습니다. 종종 쓸만한 정보가 되기 하지만 대체로 보기 불편한 존재입니다. ZAP에서는 공식적으로 기능을 제공해주고 있지 않기 때문에 간단하게 스크립팅하여 제거하는 것이 편리합니다. 간단하게 공유해봅니다.
이렇게 404도 Site tree에 노출됩니다.
먼저 Stand Alone 스크립트로 하나 만들어줍니다.
그리고 아래 코드 추가하고 저장합니다.
function listChildren(node, level) {
var j;
for (j=0;j<node.getChildCount();j++) {
var code;
ref = node.getChildAt(j).getHistoryReference();
if(ref.getStatusCode() == 404){
ref.getSiteNode().removeFromParent();
} else {
listChildren(node.getChildAt(j), level+1);
}
}
}
siteTree = model.getSession().getSiteTree()
root = siteTree.getRoot();
listChildren(root, 0);
siteTree.reload();
// https://github.com/hahwul/fuzzstone/blob/main/zap-scripts/standalone/remove404.js
이후에 스크립트를 실행해보면 ZAP에 수집된 전체 노드를 돌면서 response code가 404인 노드를 모두 제거합니다.
Site tree를 보면 this-is-404 페이지가 사라진 것을 볼 수 있습니다.