遍历网站目录
打开浏览器,遍历地址栏里敲进一个域名,网站大多数人只看到页面。目录我看到的遍历是一棵树——根目录底下分叉,每个文件夹挂着文件,网站文件里藏着链接,目录链接又指向新的遍历目录。这就是网站网站目录结构,说白了就是目录服务器上的文件夹摆放方式。
去年帮朋友查一个图片站,遍历他想批量下载某位摄影师的网站作品。网站首页有分类,目录点进去是遍历缩略图,再点才是网站大图。手动存了十几张就烦了。目录我让他把URL里的/gallery/2023/portrait/改成/gallery/2023/,页面立刻变成目录列表——服务器没配索引页,所有子文件夹赤裸裸列在那儿。这就是遍历的起点:找到那个没关紧的后门。
遍历网站目录不是黑客专属。运维排查404、爬虫工程师抓数据、安全测试找敏感文件,都绕不开这件事。核心逻辑就一句:猜路径,发请求,看响应码。200是存在,403是存在但禁止访问,404是不存在。区别在于,403往往比200更有价值——它告诉你那儿有东西,只是不让你看。
工具方面,dirsearch和gobuster是常客。拿dirsearch举例,一条命令:python3 dirsearch.py -u https://target.com -e php,html,zip -w wordlist.txt。它干的事很笨——把字典里的每个词拼到URL后面,挨个发请求。字典质量决定成败。有人用raft的common.txt,两千多条,跑十分钟能扫出/admin/、/backup.zip、/.git/。我见过最离谱的案例:某电商网站/config/目录开着,里面躺着database.php.bak,下载下来一看,数据库密码明文写着。
但别急着兴奋。现代网站有WAF,有速率限制。你发太快,IP直接进小黑屋。我习惯把线程调到5,加个--random-agent,再挂个代理池。慢是慢点,总比封了强。另一个坑是软404——服务器对所有不存在的路径都返回200,但页面内容写着“找不到”。这时候得靠响应体长度或关键词过滤,dirsearch的--exclude-text参数就是干这个的。
手动遍历也有乐趣。看到URL里?id=12,试试改成?id=13,有时候能撞出未公开的页面。或者把/api/v1/user改成/api/v1/users,复数形式经常漏配权限。有次我碰上一个站,/static/目录下直接列着所有用户上传的头像,文件名是用户ID。遍历一遍,等于把用户列表拖下来了。
防御方怎么做?三件事:关掉目录索引(Nginx里autoindex off),敏感文件别放web根目录,加个WAF规则拦截高频404。但说实话,很多小站连第一件都做不到。我随机扫过一百个个人博客,十七个开着/wp-content/uploads/的目录列表。点进去,连草稿图片都看得见。
遍历的本质是信息差。你知道的路径比对方以为你知道的多,你就赢了。这跟开锁一个道理——不是砸门,是找到那把没藏好的钥匙。下次看到404页面,别急着关。想想它上面那层目录,是不是也这么坦诚。
本文地址:http://www.79wt.cn/news/1314e1899850.html
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。