渗透测试水漏洞清单
原文链接: https://mp.weixin.qq.com/s?__biz=MzkwODc1NTgyMg==&mid=2247487355&idx=1&sn=9200bae9ae923d78620237011b33f376
渗透测试水漏洞清单
原创 bcloud 蓝云Sec 2025-07-20 16:00
声明
本文章所分享内容仅用于网络安全相关的技术讨论和学习,注意,切勿用于违法途径,所有渗透测试都需要获取授权,违者后果自行承担,与本文章及作者无关,请谨记守法。
前言
某些单位可能有每月必须做渗透测试的要求,但是挖出真正有危害的漏洞比较难,这种情况下就可以挖一些鸡肋漏洞,比如用户名密码爆破,接口信息泄露等,这些漏洞都是可以作为漏洞提交的。
所以本篇文章就是一个水漏洞的清单,关注面是你平时不关注的漏洞,只关注如何水漏洞,其他常见漏洞的挖掘方法就不写了。这里随便举个例子吧,因为一般情况下我自己水洞也是提这些洞。这些都是我遇到比较多的,可能写的不是很全面。
sping接口泄露
spring接口泄露,这个使用spring框架大家大概率是存在这个漏洞的,可能没有泄露heapdump或者比较严重的信息,但是也泄露了一部分接口。
地图KEY泄露
地图key泄露,大部分网站都存在,基本上F12搜索关键字就可以发现,难度不大。
这里也是能够成功访问,说明该key是可以使用的
这里给出漏洞利用的各家地图key接口
"高德webapi": "https://restapi.amap.com/v3/direction/walking?origin=116.434307,39.90909&destination=116.434446,39.90816&key=",
"高德jsapi": "https://restapi.amap.com/v3/geocode/regeo?s=rsv3&location=116.434446,39.90816&callback=jsonp_258885_&platform=JS&key=",
"高德小程序": "https://restapi.amap.com/v3/geocode/regeo?location=117.19674%2C39.14784&extensions=all&s=rsx&platform=WXJS&appname=c589cf63f592ac13bcab35f8cd18f495&sdkversion=1.2.0&logversion=2.0&key=",
"百度webapi": "https://api.map.baidu.com/place/v2/search?query=ATM机&tag=银行®ion=北京&output=json&ak=",
"腾讯webapi": "https://apis.map.qq.com/ws/place/v1/search?keyword=酒店&boundary=nearby(39.908491,116.374328,1000)&key="
请求头缺失
这种是水洞的重灾区,如下响应头,只要看见响应包没有改头,直接写上就完了,漏洞描述和修复建议都给出来了。复制粘贴即可。
Clear-Site-Data响应头缺失
漏洞描述:Clear-Site-Data 响应头,表示清除当前请求网站有关的浏览器数据(cookie,存储,缓存)。它让 Web 开发人员对浏览器本地存储的数据有更多控制能力。
修复建议:支持语法:// 单个参数Clear-Site-Data: cache// 多个参数 (用逗号分隔)Clear-Site-Data: cache, cookies// 通配Clear-Site-Data: *
Content-Security-Policy响应头缺失
漏洞描述:HTTP 响应头Content-Security-Policy允许站点管理者控制用户代理能够为指定的页面加载哪些资源。除了少数例外情况,设置的政策主要涉及指定服务器的源和脚本结束点。Content-Security-Policy响应头的缺失使得目标URL更易遭受跨站脚本攻击。
修复建议:将您的服务器配置为发送“Content-Security-Policy”头。对于 Apache,请参阅:
http://httpd.apache.org/docs/2.2/mod/mod_headers.html
对于 IIS,请参阅:
https://technet.microsoft.com/pl-pl/library/cc753133%28v=ws.10%29.aspx
对于 nginx,请参阅:
http://nginx.org/en/docs/http/ngx_http_headers_module.html
Cross-Origin-Embedder-Policy响应头缺失
漏洞描述:HTTP Cross-Origin-Embedder-Policy (COEP) 响应标头可防止文档加载未明确授予文档权限 (通过 CORP (en-US) 或者 CORS) 的任何跨域资源。
修复建议:语法:Cross-Origin-Embedder-Policy: unsafe-none | require-corp。unsafe-none:这是默认值。允许文档获取跨源资源,而无需通过 CORS 协议或 Cross-Origin-Resource-Policy 头。require-corp:文档只能从相同的源加载资源,或显式标记为可从另一个源加载的资源。 如果跨源资源支持 CORS,则 crossorigin 属性或 Cross-Origin-Resource-Policy 头必须使用它来加载资源,而不会被 COEP 阻止。
Cross-Origin-Opener-Policy响应头缺失
漏洞描述:HTTP Cross-Origin-Opener-Policy(COOP)响应标头允许您确保顶级文档不会与跨来源文档共享浏览上下文组。COOP将处理隔离您的文档,如果潜在攻击者在弹出窗口中打开您的全局对象,他们将无法访问该对象,从而防止一系列被称为XS-Leaks的跨源攻击。
修复建议:支持语法:Cross-Origin-Opener-Policy: unsafe-noneCross-Origin-Opener-Policy: same-origin-allow-popupsCross-Origin-Opener-Policy: same-origin
Permissions-Policy响应头缺失
漏洞描述:HTTP Permissions Policy标头提供了一种机制,在文档中或文档中的任何元素中可以允许或拒绝使用浏览器功能。
修复建议:支持语法:Cross-Origin-Resource-Policy: same-site | same-origin | cross-origin
Referrer-Policy响应头缺失
漏洞描述:Web 服务器对于 HTTP 请求的响应头中缺少 Referrer-Policy,这将导致浏览器提供的安全特性失效。 当用户在浏览器上点击一个链接时,会产生一个 HTTP 请求,用于获取新的页面内容,而在该请求的报头中,会包含一个 Referrer,用以指定该请求是从哪个页面跳转页来的,常被用于分析用户来源等信息。但是也成为了一个不安全的因素,所以就有了 Referrer-Policy,用于过滤 Referrer 报头内容,其可选的项有: no-referrer no-referrer-when-downgrade origin origin-when-cross-origin same-origin strict-origin strict-origin-when-cross-origin unsafe-url 漏洞危害: Web 服务器对于 HTTP 请求的响应头中缺少 Referrer-Policy,这将导致浏览器提供的安全特性失效,更容易遭受 Web 前端黑客攻击的影响。
修复建议:
1)修改服务端程序,给 HTTP 响应头加上 Referrer-Policy 如果是 java 服务端,可以使用如下方式添加 HTTP 响应头 response.setHeader(Referrer-Policy, value) 如果是 php 服务端,可以使用如下方式添加 HTTP 响应头 header(Referrer-Policy: value) 如果是 asp 服务端,可以使用如下方式添加 HTTP 响应头 Response.AddHeader Referrer-Policy, value 如果是 python django 服务端,可以使用如下方式添加 HTTP 响应头 response = HttpResponse() response[Referrer-Policy] = value 如果是 python flask 服务端,可以使用如下方式添加 HTTP 响应头 response = make_response() response.headers[Referrer-Policy] = value;
2)修改负载均衡或反向代理服务器,给 HTTP 响应头加上 Referrer-Policy 如果使用 Nginx、Tengine、Openresty 等作为代理服务器,在配置文件中写入如下内容即可添加 HTTP 响应头: add_header Referrer-Policy value; 如果使用 Apache 作为代理服务器,在配置文件中写入如下内容即可添加 HTTP 响应头: Header add Referrer-Policy value。
Strict-Transport-Security响应头缺失
漏洞描述:Web 服务器对于 HTTP 请求的响应头中缺少 Strict-Transport-Security,这将导致浏览器提供的安全特性失效。 当 Web 服务器的 HTTP 头中包含 Strict-Transport-Security 头时,浏览器将持续使用 HTTPS 来访问 Web 站点,可以用来对抗协议降级攻击和 Cookie 劫持攻击。其可选的值有: max-age=SECONDS,表示本次命令在未来的生效时间 includeSubDomains,可以用来指定是否对子域名生效 漏洞危害: Web 服务器对于 HTTP 请求的响应头中缺少 Strict-Transport-Security,这将导致浏览器提供的安全特性失效,更容易遭受 Web 前端黑客攻击的影响。
修复建议:
1)修改服务端程序,给 HTTP 响应头加上 Strict-Transport-Security 如果是 java 服务端,可以使用如下方式添加 HTTP 响应头 response.setHeader(Strict-Transport-Security, value) 如果是 php 服务端,可以使用如下方式添加 HTTP 响应头 header(Strict-Transport-Security: value) 如果是 asp 服务端,可以使用如下方式添加 HTTP 响应头 Response.AddHeader Strict-Transport-Security, value 如果是 python django 服务端,可以使用如下方式添加 HTTP 响应头 response = HttpResponse() response[Strict-Transport-Security] = value 如果是 python flask 服务端,可以使用如下方式添加 HTTP 响应头 response = make_response() response.headers[Strict-Transport-Security] = value;
2)修改负载均衡或反向代理服务器,给 HTTP 响应头加上 Strict-Transport-Security 如果使用 Nginx、Tengine、Openresty 等作为代理服务器,在配置文件中写入如下内容即可添加 HTTP 响应头: add_header Strict-Transport-Security value; 如果使用 Apache 作为代理服务器,在配置文件中写入如下内容即可添加 HTTP 响应头: Header add Strict-Transport-Security value。
X-Content-Type-Options响应头缺失
漏洞描述:X-Content-Type-Options HTTP 消息头相当于一个提示标志,被服务器用来提示客户端一定要遵循在 Content-Type 首部中对 MIME 类型 的设定,而不能对其进行修改。这就禁用了客户端的 MIME 类型嗅探行为,换句话说,也就是意味着网站管理员确定自己的设置没有问题。X-Content-Type-Options响应头的缺失使得目标URL更易遭受跨站脚本攻击。
修复建议:将您的服务器配置为在所有传出请求上发送值为“nosniff”的“X-Content-Type-Options”头。对于 Apache,请参阅:
http://httpd.apache.org/docs/2.2/mod/mod_headers.html
对于 IIS,请参阅:
https://technet.microsoft.com/pl-pl/library/cc753133%28v=ws.10%29.aspx
对于 nginx,请参阅:
http://nginx.org/en/docs/http/ngx_http_headers_module.html
X-Download-Options响应头缺失
漏洞描述:Web 服务器对于 HTTP 请求的响应头中缺少 X-Download-Options,这将导致浏览器提供的安全特性失效。 漏洞危害: Web 服务器对于 HTTP 请求的响应头中缺少 X-Download-Options,这将导致浏览器提供的安全特性失效,更容易遭受 Web 前端黑客攻击的影响。
修复建议:
1)修改服务端程序,给 HTTP 响应头加上 X-Download-Options 如果是 java 服务端,可以使用如下方式添加 HTTP 响应头 response.setHeader(X-Download-Options, value) 如果是 php 服务端,可以使用如下方式添加 HTTP 响应头 header(X-Download-Options: value) 如果是 asp 服务端,可以使用如下方式添加 HTTP 响应头 Response.AddHeader X-Download-Options, value 如果是 python django 服务端,可以使用如下方式添加 HTTP 响应头 response = HttpResponse() response[X-Download-Options] = value 如果是 python flask 服务端,可以使用如下方式添加 HTTP 响应头 response = make_response() response.headers[X-Download-Options] = value;
2)修改负载均衡或反向代理服务器,给 HTTP 响应头加上 X-Download-Options 如果使用 Nginx、Tengine、Openresty 等作为代理服务器,在配置文件中写入如下内容即可添加 HTTP 响应头: add_header X-Download-Options value; 如果使用 Apache 作为代理服务器,在配置文件中写入如下内容即可添加 HTTP 响应头: Header add X-Download-Options value。
X-Frame-Options响应头缺失
漏洞描述:点击劫持(ClickJacking)是一种视觉上的欺骗手段。攻击者使用一个透明的、不可见的iframe,覆盖在一个网页上,然后诱使用户在该网页上进行操作,此时用户将在不知情的情况下点击透明的iframe页面。通过调整iframe页面的位置,可以诱使用户恰好点击在iframe页面的一些功能性按钮上。HTTP 响应头信息中的X-Frame-Options,可以指示浏览器是否应该加载一个 iframe 中的页面。如果服务器响应头信息中没有X-Frame-Options,则该网站存在ClickJacking攻击风险。网站可以通过设置 X-Frame-Options 阻止站点内的页面被其他页面嵌入从而防止点击劫持。
修复建议:修改web服务器配置,添加X-Frame-Options响应头。赋值有如下三种:1、DENY:不能被嵌入到任何iframe或者frame中。2、SAMEORIGIN:页面只能被本站页面嵌入到iframe或者frame中。3、ALLOW-FROM uri:只能被嵌入到指定域名的框架中。例如:apache可配置http.conf如下:
X-Permitted-Cross-Domain-Policies响应头缺失
漏洞描述:Web 服务器对于 HTTP 请求的响应头中缺少 X-Permitted-Cross-Domain-Policies,这将导致浏览器提供的安全特性失效。 当一些在线的 Web Flash 需要加载其他域的内容时,很多 Web 会通过设置一个 crossdomain.xml 文件的方式来控制其跨域方式。很有可能有些开发者并没有修改 crossdomain.xml 文件的权限,但是又有和跨域的 Flash 共享数据的需求,这时候可以通过设置 X-Permitted-Cross-Domain-Policies 头的方式来替代 crossdomain.xml 文件,其可选的值有: none master-only by-content-type by-ftp-filename all 漏洞危害: Web 服务器对于 HTTP 请求的响应头中缺少 X-Permitted-Cross-Domain-Policies,这将导致浏览器提供的安全特性失效,更容易遭受 Web 前端黑客攻击的影响。
修复建议:
1)修改服务端程序,给 HTTP 响应头加上 X-Permitted-Cross-Domain-Policies 如果是 java 服务端,可以使用如下方式添加 HTTP 响应头 response.setHeader(X-Permitted-Cross-Domain-Policies, value) 如果是 php 服务端,可以使用如下方式添加 HTTP 响应头 header(X-Permitted-Cross-Domain-Policies: value) 如果是 asp 服务端,可以使用如下方式添加 HTTP 响应头 Response.AddHeader X-Permitted-Cross-Domain-Policies, value 如果是 python django 服务端,可以使用如下方式添加 HTTP 响应头 response = HttpResponse() response[X-Permitted-Cross-Domain-Policies] = value 如果是 python flask 服务端,可以使用如下方式添加 HTTP 响应头 response = make_response() response.headers[X-Permitted-Cross-Domain-Policies] = value;
2)修改负载均衡或反向代理服务器,给 HTTP 响应头加上 X-Permitted-Cross-Domain-Policies 如果使用 Nginx、Tengine、Openresty 等作为代理服务器,在配置文件中写入如下内容即可添加 HTTP 响应头: add_header X-Permitted-Cross-Domain-Policies value; 如果使用 Apache 作为代理服务器,在配置文件中写入如下内容即可添加 HTTP 响应头: Header add X-Permitted-Cross-Domain-Policies value。
X-XSS-Protection响应头缺失
漏洞描述:HTTP X-XSS-Protection 响应头是 Internet Explorer,Chrome 和 Safari 的一个特性,当检测到跨站脚本攻击 (XSS)时,浏览器将停止加载页面。X-XSS-Protection响应头的缺失使得目标URL更易遭受跨站脚本攻击。
修复建议:将您的服务器配置为在所有传出请求上发送值为“1”(例如已启用)的“X-XSS-Protection”头。对于 Apache,请参阅:
http://httpd.apache.org/docs/2.2/mod/mod_headers.html
对于 IIS,请参阅:
https://technet.microsoft.com/pl-pl/library/cc753133%28v=ws.10%29.aspx
对于 nginx,请参阅:
http://nginx.org/en/docs/http/ngx_http_headers_module.html
内网IP泄露
漏洞描述:
网站的内部IP地址,常常被攻击者通过信息收集,得到其内网的IP地址,对于渗透攻击,打下良好基础,如内网Ip地址段,IP路由等等。
修复建议:
删除js文件中的内网地址。
js.map文件泄露
漏洞描述:webpack是一个JavaScript应用程序的静态资源打包器。它构建一个依赖关系图,其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个bundle。大部分Vue等项目应用会使用webpack进行打包,使用webpack打包应用程序会在网站js同目录下生成 js.map文件。将sourceMap文件暴露给公共网络时。sourceMap文件提供了一种将压缩的、混淆的代码映射回原始源代码的方法,这有助于开发者在生产环境中调试问题。
修复建议:
1、在scripts/build下的build.js 文件中添加如下配置再重新打包:process.env.GENERATE_SOURCEMAP = ‘false’;
2、删除所有.map文件。
swagger接口泄露
漏洞描述:Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。Swagger生成的API文档,是直接暴露在相关web路径下的。所有人均可以访问查看。通过这一点即可获取项目上所有的接口信息。那么结合实际业务,例如如果有文件读取相关的接口,可能存在任意文件下载,相关的业务访问可能存在未授权访问等。
修复建议:
1
、在生产节点禁用
Swagger2
,在
maven
中禁用所有关于
Swagger
包(不建议)
2、结合SpringSecurity/shiro进行认证授权,将Swagger-UI的URLs加入到各自的认证和授权过滤链中,当用户访问Swagger对应的资源时,只有通过认证授权的用户才能进行访问。
用户名枚举
网站有时候输入不存在的用户会直接响应,所以基本上看回显信息就可以确定漏洞是否存在,这种一般都比较简单发现。
修复建议:
1
.
对账号是否存在的前端回显页面做出统一回显为
“用户名或密码错误”
。
2.限制一定的登录失败次数,锁定账户和IP地址等措施,以减少影响。
绝对路径泄露
漏洞描述:应用中泄露出应用在主机中的绝对地址路径,攻击者可通过获取网站物理路径,为下一步攻击做准备。
修复建议:
1
、媒体链接和超链接采用相对路径的表达方式;
2、报错信息中不对外输出网站物理路径等敏感信息。
ueditor未授权访问
漏洞描述:UEditor编辑器存在未授权访问漏洞,攻击者可以通过构造特定的URL,未经授权访问服务器上的UEditor编辑器资源,获取敏感信息或执行恶意操作。
修复建议:
1、删除uditor示例页面。