先交个底:这玩意儿是我做毕业设计时顺手鼓捣出来的。导师要个能演示的东西,我自己也想借机练练手,它能干的事不复杂:扫一扫一个网站,看看管理员是不是把不该露在外面的文件给露出来了。
顺带声明一句:项目已在 GitHub 开源(MIT 协议),全程只针对你有权限测的目标,不爆破、不 exploit、不干坏事。
一、为啥要做这个
搞安全入门的时候你会发现,真正翻车的往往不是什么高深漏洞,而是人犯懒留下的破绽:开发把.git目录、.env配置文件、备份压缩包、phpinfo 页面直接扔在网站根目录下,谁都能随手把源码和密码打包带走。
我这工具目标很单纯:把这种"一眼就能看见、但老被忽略"的暴露点,一条命令扫出来,再帮你分个轻重缓急。适合:
- 刚学安全、想找个靶场练手的同学
- 开发上线前想自查"我是不是又漏文件了"的
- 老师上课演示"信息收集阶段到底能摸到啥"的
思路上它参考了老牌目录扫描工具Dirsearch(maurosoria/dirsearch):同样拿一本字典去挨个发请求,看返回状态码判断路径在不在。我在它那套思路上,重点往"敏感文件 / 配置泄露"这块靠,又额外加了风险分级和自带靶场,让新手别一上来就懵。
二、它都能干点啥
- 两种用法:Web 界面(Flask)和命令行(CLI)都给你备好了,看心情选
- 风险分级:命中结果按 高危 / 中危 / 低危 / 信息 四档排好,先把要命的挑出来
- 自带靶场:项目里塞了个本地测试站点
testsite/,一启动就自动伪造出暴露的.git/.svn/.hg之类的文件,不用联网、不用自己搭,直接练 - 词表随便改:敏感路径名单都在
dictionary/里,想加啥自己加 - 门槛低:纯 Python,依赖就一个 Flask,Docker 也能一键起
三、项目长啥样
ListScanner/ ├── listscanner/ # 核心扫描引擎(配置、扫描、分类、词表、CLI、报告) ├── webapp.py # Flask Web 界面 ├── main.py # 靶场启动脚本 ├── ListScanner.py # 命令行入口 ├── testsite/ # 本地授权测试靶场(含 prepare_testsite.py) ├── dictionary/ # 敏感路径 / 文件名词表 ├── templates/ # Web 界面模板 ├── requirements.txt ├── Dockerfile / docker-compose.yml └── README.md / LICENSEhttps://github.com/srjm1234/ListScanner
四、怎么跑起来
先跑靶场练手(推荐)
# 1. 装依赖pipinstall-rrequirements.txt# 2. 启动内置靶场(默认 http://127.0.0.1:8080)python main.py# 3. 另开一个终端,拿 CLI 扫它python ListScanner.py--urlhttp://127.0.0.1:8080靶场一启动就会伪造出那些暴露的版本控制目录,扫完你就能看见.git/config、.svn/entries这种高危命中——这就是教科书里说的"源码泄露",在这儿能直接眼见为实。
想用网页版
python webapp.py浏览器打开提示的地址,填个你有权限测的 URL,点开始,分级结果就出来了
懒得装环境,用 Docker
dockercompose up--buildWindows 用户也能直接从 GitHub Release 下个打包好的ListScanner.exe,双击就跑,Python 都不用装。
五、它到底能扫出啥
工具看返回状态和命中的路径来判风险,典型情况大概这样:
| 命中示例 | 风险 | 说人话 |
|---|---|---|
.git/config | 高危 | Git 库露了,源码和历史可能全被拖走 |
.env | 高危 | 环境配置文件,数据库密码、API Key 常在这儿 |
phpinfo.php | 中危 | 服务器底裤都给你看光了 |
backup.zip/index.php.bak | 中危 | 源码备份直接能下 |
robots.txt | 信息 | 可能顺藤摸瓜摸到隐藏后台 |
分级的意义就一句话:先把能让你家底翻光的搞定,再慢慢收拾剩下的。
六、正经话(这段别跳过)
虽然前面一直在开玩笑,但这段是真的要认真说的:
本工具只能在你已经拿到明确授权的目标上用,只做路径存不存在的探测和信息收集,不含密码爆破、漏洞利用、认证绕过或批量攻击。出了问题你自己兜着,作者和贡献者不背锅。别拿去乱扫别人的站,到时候不是毕设答辩,是派出所约谈。
七、参考项目
- Dirsearch:经典的字典式 Web 路径/目录扫描工具,我这工具的"字典 + 状态码判定"思路就是从它那儿来的。仓库:https://github.com/maurosoria/dirsearch
反正毕设做都做了,能帮到同样在入门的朋友就当回本了。靶场自带、词表能改、风险分得明明白白,拿它当练"信息收集"的第一个小玩具挺合适。有啥问题欢迎去仓库提 issue,我这个"毕设产物"说不定还能继续长肉。