dirsearch的问题
在一些存在默认页面的网站,dirsearch会扫出来大量无效地址,会导致输出的结果非常大,如果批量扫描大量网站时,不但会占用大量磁盘空间,而且在查看结果时也会造成大量干扰。
dirsearch扫描部分结果如下:
改造
根据上面结果可以发现,扫描出来的页面长度是都是一样的,所以可以将这个作为判断条件进行自动过滤。
在dirsearch扫描到该路径时,标记当前页面的页面长度并计数,当该长度超过一定阈值时,再次扫描出来该长度的路径时直接忽略。
分析代码,保存结果的主要就是controller.py
中的match_callback
函数,修改后代码如下:
# Callback for found paths
def match_callback(self, path):
self.index += 1
for status in self.arguments.skip_on_status:
if path.status == status:
self.status_skip = status
return
if not self.valid(path):
del path
return
fuzz_length = int(path.length / 10 * 10) # 允许页面长度误差在10以内
if fuzz_length not in self.length_counter:
self.length_counter[fuzz_length] = 1
else:
self.length_counter[fuzz_length] += 1
if self.length_counter[fuzz_length] > 10: #当统计数量大于10时 跳过该结果
return
added_to_queue = False
if (
any([self.arguments.recursive, self.deep_recursive, self.force_recursive])
) and (
not self.recursion_status_codes or path.status in self.recursion_status_codes
):
if path.redirect:
added_to_queue = self.add_redirect_directory(path)
else:
added_to_queue = self.add_directory(path.path)
self.output.status_report(
path.path, path.response, self.arguments.full_url, added_to_queue
)
if self.arguments.replay_proxy:
self.requester.request(path.path, proxy=self.arguments.replay_proxy)
new_path = self.current_directory + path.path
self.report.add_result(new_path, path.status, path.response)
self.report_manager.update_report(self.report)
del path
改造后的扫描结果如下:
工具获取
关注公众号,回复dirsearch
获取下载链接