渗透测试 | 目录扫描
0x00 免责声明
本文仅限于学习讨论与技术知识的分享,不得违反当地国家的法律法规。对于传播、利用文章中提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,本文作者不为此承担任何责任,一旦造成后果请自行承担!
0x01 前言
信息收集可以说是在渗透测试中最重要的一部分,其中目录扫描也占有重要位置。通过目录扫描,可以查找到目标系统中可能存在的敏感文件和目录,在进行目录扫描之前,必须获得授权并遵守法律和道德准则。
0x02 HTTP状态码详解
Ⅰ 状态码的五种类型
状态码 | 类型 |
1xx | 信息状态码 |
2xx | 成功状态码 |
3xx | 重定向状态码 |
4xx | 客户端错误状态码 |
5xx | 服务器错误状态码 |
Ⅱ 2xx状态码
200 OK
状态码 200 表示请求成功。默认情况状态码是 200 的响应可以被缓存。
201 Created
HTTP 成功创建新资源,状态码为 201 ,状态码 201 表示服务器已成功创建了新资源并返回给客户端。
202 Accepted
HTTP 协议中,状态码 202 表示服务器已经收到请求,但还未处理完毕。但需要注意的是,服务器不能保证处理一定成功,并且也不能通过 HTTP 协议异步地通知客户端请求的处理结果。
Ⅲ 3xx状态码
301 Moved Permanently
当 Web 服务器接收到用户的访问请求时,如果请求的 URL 已经发生改变,可以采用 301 跳转的方式,将请求的 URL 永久地重定向到新的 URL 地址。此时,服务器会返回一个状态码为 301 的响应,告知搜索引擎和浏览器该页面已经永久性地被移动到了一个新的位置。
302 Found
当使用 HTTP 协议请求资源时,如果服务器暂时将资源移动到了另一个 URL 上,它将返回 302 Found 状态码。这表示浏览器应该重定向到该 URL 来获取资源。但搜索引擎不会更新链接并仍将原始 URL 视为资源的地址。所以,这个状态码在一些情况下可以帮助维护者快速更新网站资源的位置,但也有可能导致搜索引擎无法正确索引资源。
Ⅳ 4xx状态码
400 Bad Request
当服务器认为客户端错误的请求有语法错误、请求消息格式无效或请求路由欺骗性时,会返回 HTTP 400 Bad Request 响应状态码,指示服务器无法或不会处理该请求。这种状态码通常与客户端错误相关联,表示请求中存在某些问题,使服务器无法理解或处理该请求。
401 Unauthorized
当状态码为 401 时,意味着客户端错误,即请求未能得到满足,因为缺少所需的身份验证凭证。这通常发生在客户端未能提供正确的凭证或缺乏所需的权限时。
403 Forbidden
状态码 403 Forbidden 是一种表示客户端错误的 HTTP 协议状态码,意味着尽管服务器有能力处理请求,但仍然拒绝授权访问。与状态码 401 相似,重新验证也不会改变该状态,且该资源的访问是长期禁止的。通常情况下,这种状态码与应用逻辑有关,例如用户没有足够的权限访问该资源。
404 Not Found
当我们在使用 HTTP 协议访问资源时,如果服务器无法找到请求的资源,就会返回 404 Not Found 状态码。这个状态码表示服务器上没有与请求的 URL 对应的资源。需要注意的是,404 并不能告诉我们请求的资源是临时丢失还是永久丢失,需要通过其他方式来确定资源是否还存在。
405 Method Not Allowed
当客户端向服务器发送使用了不允许的 HTTP 方法的请求时,服务器会返回状态码 405 Method Not Allowed ,表示当前请求被禁止。这种情况可能是由于服务器上的某些限制或配置所致,因此客户端需要使用允许的 HTTP 方法重新发送请求。
Ⅴ 5xx状态码
503 Server Unavailable
HTTP 协议中的 503 状态码是一种服务器端错误状态代码,表示服务器暂时无法处理请求。常见的原因包括服务器正在进行维护,或者负载过高导致无法处理请求。此状态码告诉客户端,服务器目前无法提供所需服务,并建议稍后再尝试发送请求。
0x03 DirMap目录扫描工具
DirMap是一个高级web目录扫描工具,功能将会强于DirBuster、Dirsearch、cansina、御剑。文章中只对工具做一个简单的了解,并不做详细介绍。
ⅠDirMap工具下载
https://github.com/H4ckForJob/dirmap
Ⅱ检查更新pip版本
python -m pip install --upgrade pip
Ⅲ安装环境依赖库
pip install -r requirements.txt
pip install progressbar2
pip install lxml
pip install requests
pip install progressbar
pip install gevent
Error报错解决:
报错描述:
ERROR: Package 'xdis' requires a different Python: 3.11.3 not in '<3.11,>=3.6'
报错原因:
报错是因为我的 Python 版本是 3.11.3 ,但是安装的 xdis 版本不兼容 Python 3.11.3 导致。xdis 仅支持 Python 版本在 3.6 到 3.10 之间。
解决方法:
可以使用 pip 命令安装一个兼容 Python 3.11.3 的 xdis 版本。
pip install xdis==5.0.5
Ⅳ运行截图
python dirmap.py -i https://target.com -lcf
0x04 7kbscan目录扫描工具
7kbscan 目录扫描工具相比 dirmap 工具有两个好处是可以进行多 url 扫描,可以提升效率。其二,在软件中可以自定义设置请求头,一般进行目录扫描有些网站可能设置了 WAF 等防护机制。如果没有设置 UA 请求头或者是线程数等,网站 WAF 就会发现可疑的请求头请求过快。如果设置了一些专门爬虫的请求头例如百度的请求头或者谷歌的请求头,那么网站 WAF 会误以为你是百度的爬虫或者是谷歌的爬虫,网站 WAF 就会允许你进行扫描。对此,如有疑惑可以参考谷歌搜索引擎机制等相关文章。
Ⅰ7kbscan工具下载
https://gitcode.net/mirrors/7kbstorm/7kbscan-WebPathBrute?utm_source=csdn_github_accelerator
Ⅱ运行截图
0x05 御剑Web目录扫描工具
御剑目录扫描专业版,简单实用的命令行网站目录扫描工具,支持爬虫、 fuzz 、自定义字典、字典变量、 UA 修改、假 404 自动过滤、扫描控速等功能。
Ⅰ御剑扫描工具下载
https://github.com/foryujian/yjdirscan
Ⅱ运行截图
0x06 参考文献
[1].mdnwebdocs. 200 OK[EB/OL]. [2023-04-29]. https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status/200.
[2].mdnwebdocs. 201 Created[EB/OL]. [2023-04-29]. https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status/201.
[3].mdnwebdocs. 202 Accepted[EB/OL]. [2023-04-29]. https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status/202.
[4].mdnwebdocs. 302 Found[EB/OL]. [2023-04-29]. https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status/302.
[5].mdnwebdocs. 400 Bad Request[EB/OL]. [2023-04-29]. https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status/400.
[6].mdnwebdocs. 401 Unauthorized[EB/OL]. [2023-04-29]. https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status/401.
[8].mdnwebdocs. 403 Forbidden[EB/OL]. [2023-04-29]. https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status/403.
[9].mdnwebdocs. 404 Not Found[EB/OL]. [2023-04-29]. https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status/404.
[10].mdnwebdocs. 405 Method Not Allowed[EB/OL]. [2023-04-29]. https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status/405.
[11].mdnwebdocs. 503 Service Unavailable[EB/OL]. [2023-04-29]. https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status/503.
[12].高木同学天下第一. 常用的HTTP状态码[EB/OL]. [2023-04-29]. https://blog.csdn.net/beyond150/article/details/102128827.
0x07 总结
由于作者水平有限,文中若有错误与不足欢迎留言,便于及时更正。