扫描网站目录

扫描网站目录这活儿,扫描听起来像是网站黑客干的事,其实大部分时候是目录运维和安服人员的日常。我见过太多人拿着dirsearch一顿猛扫,扫描扫出一堆路径就截图交差,网站那真白瞎了这工具。目录

先讲个真事。扫描去年帮朋友排查一个被挂马的网站站点,后台入口被藏得严严实实,目录前端页面干干净净,扫描日志里也看不出异常。网站我习惯性地扫了一遍目录,目录在某个不起眼的扫描备份文件夹里发现了一个名为“admin_2023.zip”的文件。点开一看,网站好家伙,目录整站源码加数据库备份全在里面躺着。攻击者根本没费什么劲,就是扫到了这个备份文件,直接下载解压,拿到了后台密码的MD5值。你说这站点冤不冤?目录扫描不是用来找漏洞的,是用来找“人祸”的。

目录扫描的原理其实特别朴素——就是猜。服务器上每个文件、每个文件夹都有个URL,你按着字典里的常见名字一个个去请求,看哪个返回200。返回200就说明这路径存在。字典的质量决定扫描的成败。有的字典全是wp-admin、phpmyadmin这种大众货,扫个定制化系统基本白搭。真正的老手会自己攒字典,把公司名、产品名、年份、内部代号全加进去。我曾经扫一个政府网站,标准字典一无所获,后来把他们的科室拼音缩写加进去,立刻扫出一个“cwgl”(财务管理)目录,里面是个没设权限的老报表系统。

但这里有个坑,很多人容易忽略——扫描频率。你开着工具默认线程猛跑,等于在服务器日志里刷屏。管理员又不是瞎子,看访问日志里同一个IP每秒几十个请求,不封你封谁?我见过更蠢的,扫到一半把对方服务器扫宕机了,直接触发防火墙告警,本来能渗透进去的,结果连IP都被拉黑了。扫描要讲究节奏,线程数调低点,请求间隔拉长点,有时候还得随机换User-Agent,模拟真实浏览器的访问习惯。

再说说robots.txt这玩意儿。新手喜欢先看它,觉得里面写着“Disallow”的路径就是宝。可稍微有点经验的人都知道,robots.txt是给搜索引擎看的,不是给攻击者看的。真正隐蔽的目录根本不会写进去。我反而经常反着用——如果某个目录被robots明确禁止,那多半是管理员想藏点东西,但又不小心暴露了藏的方向。扫到这种路径后,我会重点测试它是否真的禁止访问,有时候只是禁止搜索引擎抓取,普通用户照样能打开。

还有个细节,响应码不能全信。有些服务器配置了自定义404页面,你请求不存在的路径,它返回200,但页面内容是“404 Not Found”。光看状态码会被骗。得检查响应内容的长度和特征词。反过来,有些路径存在,但服务器返回302跳转,这反而说明你找对地方了——跳转往往指向登录页或者后台入口。我习惯把扫描结果按响应码和内容长度分类,再人工过一遍,比直接看扫出来的列表靠谱得多。

说到底,目录扫描就是个信息收集的手段,跟翻垃圾桶差不多。真正的价值在于你扫完之后怎么处理这些路径。扫出个“/backup”目录,你得去试试有没有列目录权限,能不能直接下载里面的文件。扫出个“/test”目录,你得看看是不是测试环境,有没有可能绕过正式环境的防护。扫描只是敲门,进去之后的事才见真章。

工具这东西,网上开源的一大堆,随便就能下到。可同样的工具,有人扫出漏洞,有人扫出安全隐患,有人把自己扫进监狱——区别全在脑子里那根弦。扫描前先掂量掂量,这网站是不是你自己的?有没有授权?别图一时手痒,拿别人的网站练手,到时候警察叔叔找上门,可别说我没提醒。