Nuke Blog

    观自在菩萨,行深般若波罗蜜多时,照见五蕴皆空,度一切苦厄。舍利子,色不异空,空不异色,色即是空,空即是色,受想行识亦复如是。舍利子,是诸法空相,不生不灭,不垢不净,不增不减。是故空中无色,无受想行识,无眼耳鼻舌身意,无色声香味触法,无眼界乃至无意识界,无无明亦无无明尽,乃至无老死,亦无老死尽,无苦集灭道,无智亦无得。以无所得故,菩提萨埵,依般若波罗蜜多故,心无挂碍;无挂碍故,无有恐怖,远离颠倒梦想,究竟涅槃。三世诸佛,依般若波罗蜜多故,得阿耨多罗三藐三菩提。故知般若波罗蜜多,是大神咒,是大明咒,是无上咒,是无等等咒,能除一切苦,真实不虚。故说般若波罗蜜多咒,即说咒曰:揭谛揭谛,波罗揭谛,波罗僧揭谛,菩提萨婆诃。

MENU

web目录扫描工具-Dirmap安装及使用体验

想找一款合适的web扫描软件,结果发现一款功能异常强大的扫描工具  Dirmap

(本文是做一个自己使用dirmap的笔记以便日后使用查询)

软件作者也表示开发这款工具的目的,是为了自身工作需要:

本人是一名立志安全开发的大学生,有一年安全测试经验,有时在刷src的时候,需要检查所有target的web业务系统是否泄露敏感目录、文件,工作量十分庞大,于是Dirmap诞生了~知名的web目录文件扫描工具有很多,如:御剑1.5、DirBuster、Dirsearch、cansina。其他开源的各种轮子,更是数不胜数。这次我们不造轮子,我们需要造的是一辆车!open source的那种XD

一、安装 Drmap

准备工作:

这是一款Python3语言开发的扫描工具,使用需要提前安装Python3的环境。

我在本地安装的是Python 3.7  64位版,可在Python的官方网站下载对应版本安装。

国内也有大量镜像可提供下载,可自行搜索,傻瓜式安装,本文不再详述。

软件下载:

作者在Github https://github.com/H4ckForJob/dirmap  开源了这个项目,可以直接下载源码解压。

dirmap具有归递扫描模式、字典模式、爆破模式、爬虫模式、fuzz模式集中模式,可以说基本满足正常使用要求。

具体介绍可在Github的Dirmap介绍中获取,这里也不再详述。本文主要介绍这款软件的安装和初步功能。

软件安装:

dirmap下载完成后,需要先进行安装操作。

dirmap的安装非常简单,首先解压dirmap后,进入文件运行cmd模式。

并在cmd中执行安装命令:

python -m pip install -r requirement.txt

dirmap安装会自行下载whl压缩文件进行软件环境安装。

web目录扫描工具-Dirmap安装及使用体验  第1张

安装完成后运行dirmap.py会进入软件界面:

web目录扫描工具-Dirmap安装及使用体验  第2张

至此,软件安装已经完成,可以正常执行扫描工作了。


二、软件使用: 

软件可以直接使用命令运行,单个站点扫描只需要执行:

python dirmap.py -iU https://www.sss.com -lcf

如果对多个站点进行扫描,可将地址保存在txt文件中,并执行命令即可:

python dirmap.py -iF urls.txt -lcf

图示:

web目录扫描工具-Dirmap安装及使用体验  第3张

扫描结果,会在dirmap目录中的output文件夹内,

找到以url命名的txt文件,内部保存扫描结果。

web目录扫描工具-Dirmap安装及使用体验  第4张


测试默认字典扫描,由于网络原因,扫描速度一度到4分多钟,换了一个测试环境,一般在1-2分钟左右

扫描速度表现尚可。

另外软件支持自定义字典,可在根目录的DATA文件中自己添加

默认字典有:

dict_mode_dict.txt “字典模式”字典,使用dirsearch默认字典; crawl_mode_suffix.txt “爬虫模式”字典,使用FileSensor默认字典; fuzz_mode_dir.txt “fuzz模式”字典,使用DirBuster默认字典; fuzz_mode_ext.txt “fuzz模式”字典,使用常见后缀制作的字典; dictmult该目录为“字典模式”默认多字典文件夹,包含:BAK.min.txt(备份文件小字典),BAK.txt(备份文件大字典),LEAKS.txt(信息泄露文件字典); fuzzmult该目录为“fuzz模式”默认多字典文件夹,包含:fuzz_mode_dir.txt(默认目录字典),fuzz_mode_ext.txt(默认后缀字典)

三、软件配置

目前该款软件尚未完全开发完全,而且暂时不支持命令行执行配置功能。

但可以对dirmap.conf文件进行手动配置,使用更高级模式:

支持递归扫描 支持自定义需要递归扫描的状态码 支持(单|多)字典扫描 支持自定义字符集爆破 支持爬虫动态字典扫描 支持自定义标签fuzz目标url 自定义请求User-Agent 自定义请求随机延时 自定义请求超时时间 自定义请求代理 自定义正则表达式匹配假性404页面 自定义要处理的响应状态码 自定义跳过大小为x的页面 自定义显示content-type 自定义显示页面大小 按域名去重复保存结果

配置文件的说明如下:

#递归扫描处理配置
[RecursiveScan]
#是否开启递归扫描:关闭:0;开启:1
conf.recursive_scan = 0
#遇到这些状态码,开启递归扫描。默认配置[301,403]
conf.recursive_status_code = [301,403]
#设置排除扫描的目录。默认配置空。其他配置:e.g:['/test1','/test2']
#conf.exclude_subdirs = ['/test1','/test2']
conf.exclude_subdirs = ""


#扫描模式处理配置(4个模式,1次只能选择1个)
[ScanModeHandler]
#字典模式:关闭:0;单字典:1;多字典:2
conf.dict_mode = 1
#单字典模式的路径
conf.dict_mode_load_single_dict = "dict_mode_dict.txt"
#多字典模式的路径,默认配置dictmult
conf.dict_mode_load_mult_dict = "dictmult"
#爆破模式:关闭:0;开启:1
conf.blast_mode = 0
#生成字典最小长度。默认配置3
conf.blast_mode_min = 3
#生成字典最大长度。默认配置3
conf.blast_mode_max = 3
#默认字符集:a-z。暂未使用。
conf.blast_mode_az = "abcdefghijklmnopqrstuvwxyz"
#默认字符集:0-9。暂未使用。
conf.blast_mode_num = "0123456789"
#自定义字符集。默认配置"abc"。使用abc构造字典
conf.blast_mode_custom_charset = "abc"
#自定义继续字符集。默认配置空。
conf.blast_mode_resume_charset = ""
#爬虫模式:关闭:0;开启:1
conf.crawl_mode = 0
#解析robots.txt文件。暂未实现。
conf.crawl_mode_parse_robots = 0
#解析html页面的xpath表达式
conf.crawl_mode_parse_html = "//*/@href | //*/@src | //form/@action"
#是否进行动态爬虫字典生成:关闭:0;开启:1
conf.crawl_mode_dynamic_fuzz = 0
#Fuzz模式:关闭:0;单字典:1;多字典:2
conf.fuzz_mode = 0
#单字典模式的路径。
conf.fuzz_mode_load_single_dict = "fuzz_mode_dir.txt"
#多字典模式的路径。默认配置:fuzzmult
conf.fuzz_mode_load_mult_dict = "fuzzmult"
#设置fuzz标签。默认配置{dir}。使用{dir}标签当成字典插入点,将http://target.com/{dir}.php替换成http://target.com/字典中的每一行.php。其他配置:e.g:{dir};{ext}
#conf.fuzz_mode_label = "{ext}"
conf.fuzz_mode_label = "{dir}"


#处理payload配置。暂未实现。
[PayloadHandler]



#处理请求配置
[RequestHandler]
#自定义请求头。默认配置空。其他配置:e.g:test1=test1,test2=test2
#conf.request_headers = "test1=test1,test2=test2"
conf.request_headers = ""
#自定义请求User-Agent。默认配置chrome的ua。
conf.request_header_ua = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36"
#自定义请求cookie。默认配置空,不设置cookie。其他配置e.g:cookie1=cookie1; cookie2=cookie2;
#conf.request_header_cookie = "cookie1=cookie1; cookie2=cookie2"
conf.request_header_cookie = ""
#自定义401认证。暂未实现。因为自定义请求头功能可满足该需求(懒XD)
conf.request_header_401_auth = ""
#自定义请求方法。默认配置get方法。其他配置:e.g:get;head
#conf.request_method = "head"
conf.request_method = "get"
#自定义每个请求超时时间。默认配置3秒。
conf.request_timeout = 3
#随机延迟(0-x)秒发送请求。参数必须是整数。默认配置0秒,无延迟。
conf.request_delay = 0
#自定义单个目标,请求协程线程数。默认配置30线程
conf.request_limit = 30
#自定义最大重试次数。暂未实现。
conf.request_max_retries = 1
#设置持久连接。是否使用session()。暂未实现。
conf.request_persistent_connect = 0
#302重定向。默认False,不重定向。其他配置:e.g:True;False
conf.redirection_302 = False
#payload后添加后缀。默认空,扫描时,不添加后缀。其他配置:e.g:txt;php;asp;jsp
#conf.file_extension = "txt"
conf.file_extension = ""


#处理响应配置
[ResponseHandler]
#设置要记录的响应状态。默认配置[200],记录200状态码。其他配置:e.g:[200,403,301]
#conf.response_status_code = [200,403,301]
conf.response_status_code = [200]
#是否记录content-type响应头。默认配置1记录
#conf.response_header_content_type = 0
conf.response_header_content_type = 1
#是否记录页面大小。默认配置1记录
#conf.response_size = 0
conf.response_size = 1
#自定义匹配404页面正则
#conf.custom_404_page = "fake 404"
conf.custom_404_page = ""
#自定义匹配503页面正则。暂未实现。感觉用不着,可能要废弃。
#conf.custom_503_page = "page 503"
conf.custom_503_page = ""
#自定义正则表达式,匹配页面内容
#conf.custom_response_page = "([0-9]){3}([a-z]){3}test"
conf.custom_response_page = ""
#跳过显示页面大小为x的页面,若不设置,请配置成"None",默认配置“None”。其他大小配置参考e.g:None;0b;1k;1m

#conf.skip_size = "0b"
conf.skip_size = "None"



#代理选项

[ProxyHandler]
#代理配置。默认设置“None”,不开启代理。其他配置e.g:{"http":"http://127.0.0.1:8080","https":"https://127.0.0.1:8080"}
#conf.proxy_server = {"http":"http://127.0.0.1:8080","https":"https://127.0.0.1:8080"}
conf.proxy_server = None


#Debug选项
[DebugMode]
#打印payloads并退出
conf.debug = 0

#update选项
[CheckUpdate]
#github获取更新。暂未实现。
conf.update = 0


总体来说这是一款比较强大的扫描软件,虽然目前几个功能尚未完善,但我很期待作者尽快完成它,因为这款扫描器扫描速度及功能都是蛮强大的。感谢作者!

觉得文字有用,请点击下方打赏按钮,扫描二维码打赏作者。

打赏

发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

© 苏ICP备19024584号
Powered by Z-BlogPHP & Yiwuku.com