├── .gitignore ├── LICENSE └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | .DS_Store 3 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 Y5neKO 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Anfu-Vlun-Wiki 2 | (已包含到 https://github.com/Y5neKO/SSReportTools 》 漏洞库,生成报告更快捷,本项目不再更新) 3 | 4 | 作为一名安服/渗透仔(悲),难免会经常跟各种报告打交道,在写报告的时候经常花费大量时间在各种繁琐的漏洞描述、危害、修复建议上,每次遇到同样的漏洞又得再重复一遍,非常影响~~摸鱼~~效率;因此出现了这个Wiki,用以记录一些经常遇到的漏洞,以及其漏洞描述、漏洞危害、修复建议等。 5 | 6 | 本Wiki中的各种描述来源均来自以下但不限于:~~个人瞎掰~~、网络文章、AI辅助描述;可能存在误差,因此内容仅供参考,写报告的时候尽量多对一下描述是否符合再写进去。 7 | 8 | 也欢迎各位师傅提Pull,添加、完善或纠正漏洞描述。 9 | 10 | ## 漏洞清单 11 | 12 | | 漏洞名称 | 漏洞描述 | 漏洞危害 | 修复建议 | 13 | | ---------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | 14 | | 内网地址泄露 | 由于网站配置原因,导致存在内网地址的文件或报错信息中存在内网地址。 | 网站的内部IP地址,常常被攻击者通过信息收集,得到其内网的IP地址,对于渗透攻击,打下良好基础,如内网Ip地址段,IP路由等等。 | 1、删除js文件中的内网地址。 2、禁止在回显中返回内网地址。 | 15 | | 绝对路径泄露 | 应用中泄露出应用在主机中的绝对地址路径,攻击者可通过获取网站物理路径,为下一步攻击做准备。 | | 1、媒体链接和超链接采用相对路径的表达方式; 2、报错信息中不对外输出网站物理路径等敏感信息。 | 16 | | sourceMap源码泄露 | webpack是一个JavaScript应用程序的静态资源打包器。它构建一个依赖关系图,其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个bundle。大部分Vue等项目应用会使用webpack进行打包,使用webpack打包应用程序会在网站js同目录下生成 js.map文件。将sourceMap文件暴露给公共网络时。sourceMap文件提供了一种将压缩的、混淆的代码映射回原始源代码的方法,这有助于开发者在生产环境中调试问题。 | 通过这样的源码,可以非常清晰地了解应用的前端业务,包括接口信息,如果前端包含加解密的逻辑的话,这样也非常有利于攻击者进行破解。 | 1、在scripts/build下的build.js 文件中添加如下配置再重新打包:process.env.GENERATE_SOURCEMAP = 'false'; 2、删除所有.map文件。 | 17 | | 敏感信息泄露 | 由于网站配置原因,存放敏感信息的文件被泄露或由于网站运行出错导致敏感信息泄露。 | 攻击者可通过泄露的数据获取服务器的相关,能配合其他漏洞发动进一步攻击,例如猜解系统账号、造成数据泄露风险。 | 1、删除该示例页面或对页面进行鉴权。 2、不展示详细报错信息。 | 18 | | 链接注入 | 链接注入是将某个URL嵌入到被攻击的网站上,进而修改站点页面。被嵌入的URL包含恶意代码,可能窃取正常用户的用户名、密码,也可能窃取或操纵认证会话,以合法用户的身份执行相关操作。 | [1]获取其他用户Cookie中的敏感数据。 [2]屏蔽页面特定信息。 [3]伪造页面信息。 [4]拒绝服务攻击。 [5]突破外网内网不同安全设置。 | 过滤客户端提交的危险字符,客户端提交方式包含GET、POST、COOKIE、User-Agent、Referer、Accept-Language等,其中危险字符如下: [1] \| [2] & [3] ; [4] $ [5] % [6] @ [7] ' [8] " [9] [10] () [11] + [12] CR [13] LF [14] , [15] . [16] script [17] document [18] eval 开发语言的建议: [1]严格控制输入: Asp:request Php:$_GET、$_POST、$_COOKIE、$_SERVER Jsp:request.getParameter、request.getCookies Asp.net:Request.QueryString、Form、Cookies、SeverVaiables 客户端提交的变量一般从以上函数获得,严格限制提交的数据长度、类型、字符集。 [2]严格控制输出: HtmlEncode:对一段指定的字符串应用HTML编码。 UrlEncode:对一段指定的字符串URL编码。 XmlEncode:将在XML中使用的输入字符串编码。 XmlAttributeEncode:将在XML属性中使用的输入字符串编码。 escape:函数可对字符串进行编码。 decodeURIComponent:返回统一资源标识符的一个已编码组件的非编码形式。 encodeURI:将文本字符串编码为一个有效的统一资源标识符 (URI)。 | 19 | | XSS漏洞 | XSS漏洞(Cross-Site Scripting)是一种常见的Web应用程序安全漏洞,它允许攻击者在受害者的浏览器中注入恶意脚本。 | 当受害者访问包含恶意脚本的网页时,攻击者就可以利用该漏洞来执行任意的代码,例如窃取用户的敏感信息、修改网页内容或进行其他恶意活动。 | 1、输入验证和过滤:对用户输入的数据进行有效的验证和过滤,以确保不会包含恶意的脚本代码。可以使用正则表达式、编码函数或专门的输入过滤器来实现。 2、输出编码:在将用户输入的数据显示在网页上之前,对其进行适当的输出编码,以防止浏览器将其解析为脚本代码。可以使用HTML实体编码、URL编码或JavaScript编码等方法。 3、设置HTTP头:在网页中设置Content-Security-Policy(CSP)头,限制页面中可以加载和执行的资源,包括脚本文件、样式表和图片等。这可以防止恶意脚本被加载和执行。 4、使用Web应用防火墙(WAF):部署WAF可以对传入的请求进行检测和过滤,以防止XSS攻击。WAF可以根据已知的攻击模式和签名来识别和阻止恶意请求。 5、设置cookie的HttpOnly属性:将cookie的HttpOnly属性设置为true,可以防止通过JavaScript访问和窃取cookie信息,从而减少XSS攻击的可能性。 | 20 | | swagger-ui泄露 | Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。相关的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。 | Swagger生成的API文档,是直接暴露在相关web路径下的。所有人均可以访问查看。通过这一点即可获取项目上所有的接口信息。那么结合实际业务,例如如果有文件读取相关的接口,可能存在任意文件下载,相关的业务访问可能存在未授权访问等。 | 1、在生产节点禁用Swagger2,在maven中禁用所有关于Swagger包(不建议) 2、结合SpringSecurity/shiro进行认证授权,将Swagger-UI的URLs加入到各自的认证和授权过滤链中,当用户访问Swagger对应的资源时,只有通过认证授权的用户才能进行访问。 | 21 | | 目录浏览 | 目录浏览漏洞是指Web服务器配置不当,‌允许用户查看服务器上的文件目录结构,‌从而可能下载敏感文件。‌这种漏洞通常由于服务器端配置错误,‌如未去除中间件(‌如IIS、‌Apache、‌Tomcat)‌的文件目录索引功能,‌或者设置不当的目录权限,‌导致能够获取服务器上的文件列表。‌ | 黑客能够获取服务器上的文件列表,‌进而攻击敏感文件 | 1、修改配置文件,‌去除中间件的文件目录索引功能。‌ 2、设置目录权限,‌确保只有授权的用户才能访问特定目录。‌ 3、在每个目录下创建一个空的index.html页面,‌以防止目录浏览。‌ | 22 | | 未授权访问 | 未授权访问漏洞是指在没有得到适当授权的情况下,‌用户或系统能够访问到敏感数据或执行某些操作的情况。‌这种漏洞通常是由于安全配置不当、‌认证页面存在缺陷,‌或者在启动过程中未配置认证导致的。‌ | 当企业对外服务和端口对公网开放,‌且对用户的访问没有做任何限制时,‌可能会泄露业务数据或内部敏感信息,‌部分数据可能被攻击者进一步利用以执行系统命令、‌操作系统文件,‌进而对系统造成破坏或重大数据泄露威胁。‌ | 1、限制对外开放的端口,‌仅允许必要的IP地址访问。‌ 2、实施适当的身份验证和授权机制来限制对API的访问。‌ 3、限制对敏感或特权API端点的访问,‌确保只有具有特定权限的用户或角色才能访问。‌ | 23 | | 任意文件读取 | 任意文件读取漏洞是指攻击者可以通过web应用程序读取服务器上的任意文件而不受访问控制限制的漏洞。‌这种漏洞可能导致敏感信息泄露、‌系统崩溃等问题。‌ | 攻击者可以利用任意文件读取漏洞访问服务器上的任意文件,‌包括密码文件、‌配置文件等,‌从而获取系统权限和敏感信息。‌ | 1、严格校验文件路径:确保用户输入的文件路径符合预期,并且不包含恶意内容。例如,在Java应用程序中,可以通过检查文件路径是否包含父目录引用(如"..")或者是否以预期的路径开头来校验路径的合法性。 2、使用open_basedir(针对PHP):在PHP中,可以通过设置open_basedir来限制脚本可以访问的目录,从而防止它们读取不应该被访问的文件。 3、如果确实需要读取用户指定的文件,可以考虑将文件放在特定的目录中,并通过映射或代理的方式提供给用户。这样,即使用户输入了恶意路径,也无法直接访问到敏感文件。 | 24 | | 接口文档泄露 | 接口文档泄露漏洞是指API(Application Programming Interface,应用程序编程接口)的接口文档被未经授权的用户或攻击者获取,从而可能导致敏感信息泄露、安全风险增加等问题。 | 通过接口文档,‌攻击者可以了解并利用API的具体功能和参数,‌进而实施攻击。‌ | 1、删除接口文档 2、对接口文档界面添加鉴权,防止直接访问 | 25 | | Nginx alias配置不当路径遍历 | 在Nginx中,配置alias指令时如果没有正确处理URL的前缀,可能会导致目录遍历漏洞。 | alias的错误配置可能允许攻击者读取存储在目标文件夹之外的文件、根目录下的所有文件都可以访问,还可以下载至本地进行分析利用。 | 1、修改/usr/local/nginx/conf/nginx.conf,location末尾使用/闭合。 | 26 | | 备份文件泄露 | 当备份文件存储在不安全的地点或网络位置,‌且没有适当的访问控制机制时,‌任何能够接触到这些文件的人都有可能将其内容泄露或不当使用。‌ | | 1、删除备份文件 2、不将备份文件保存在服务器自身,使用专门的备份位置 | 27 | | log4j2远程代码执行 | Log4j2是一个流行的Java日志框架,于2021年12月31日发布安全更新,修复了一个远程代码执行(RCE)漏洞,该漏洞是由于Log4j2中的JNDI功能不当使用而导致的。攻击者可以通过构造恶意的日志信息利用这个漏洞远程执行任意代码。 | | 1、立即升级Log4j2到安全版本:更新到Log4j 2.15.0-rc2或更高版本 2、如果无法立即升级,可以暂时禁用JNDI查找功能,通过在Log4j2配置文件中设置log4j2.formatMsgNoLookups=true | 28 | | 致远OA XXE | 致远OA是由北京致远互联软件股份有限公司(以下简称致远公司)开发的一款面向中大型、集团组织的数字化协同运营平台。该系统基于组织管理基础理论设计,可解决组织结构、业务重组、组织流程再造等结构治理相对应的问题,满足集团战略管控、营运管控和财务管控的战略协同行为和垂直业务管控的要求。致远OA系统存在高危漏洞,未经身份验证的攻击者利用该漏洞,可通过精心构造恶意脚本文件,使用POST方法向目标服务器上传该文件,并远程执行代码,实现网站后门的植入,进而控制目标服务器。 | | 1、致远OA官方已针对该漏洞提供补丁。请广大用户联系官方获取最新补丁,升级至最新版本。 | 29 | | 短信验证码绕过 | 短信验证码绕过漏洞主要涉及到通过修改或绕过正常的验证码验证过程,‌使得用户能够使用错误的或虚构的验证码完成验证,‌从而获得未经授权的访问权限或执行未经授权的操作。‌这种漏洞的存在允许攻击者或未经授权的用户绕过正常的验证码验证机制,‌进而可能对系统造成安全威胁或获取敏感信息。‌ | | 1、禁止通过前端返回结果作为验证码校验凭证。 | 30 | | Host头攻击 | Host首部字段是HTTP/1.1新增的,旨在告诉服务器,客户端请求的主机名和端口号,主要用来实现虚拟主机技术。运用虚拟主机技术,单个主机可以运行多个站点。为了方便获取网站域名,开发人员一般依赖于请求包中的Host首部字段。例如,在php里用_SERVER["HTTP_HOST"],但是这个Host字段值是不可信赖的。 | 如果应用程序没有对Host字段值进行处理,就有可能造成恶意代码的传入。 | 1、对Host字段进行检测 2、Nginx,修改ngnix.conf文件,在server中指定一个server_name名单,并添加检测。 3、Apache,修改httpd.conf文件,指定ServerName,并开启UseCanonicalName选项。 4、Tomcat,修改server.xml文件,配置Host的name属性。 | 31 | | SQL注入 | SQL注入主要形成的原因是在数据交互中,站点针对前端的数据传入到后台处理时,没有做严格的判断,导致其传入的“数据”拼接到 SQL 语句中后,被当作 SQL 语句的一部分执行。 从而导致数据库受损(被脱裤、被删除、甚至整个服务器权限沦陷)。 | 攻击者可以在 Web 应用程序中事先定义好的查询语句的结尾上添加额外的 SQL 语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。 | 1、使用参数化查询或存储过程。 2、对输入进行验证,确保输入的数据类型和格式与预期匹配。 3、使用ORM(对象关系映射)工具或安全的数据库抽象层来减少手动拼接SQL的需要。 4、限制数据库账户权限,只提供必要的访问权限。 | 32 | | 用户名遍历 | 通常出现在身份验证和访问控制机制存在缺陷的系统中,允许攻击者通过尝试不同的用户名来枚举系统中的用户账户。 | 攻击者可以利用这一漏洞,通过构造特定的请求,尝试访问或利用系统中的用户资源,从而可能导致未经授权的访问或其他安全风险。 | 1、限制尝试次数‌:系统应设置尝试登录的最大次数,以防止暴力破解。 2、隐藏或模糊处理‌:对于不存在的用户名,系统应采取措施隐藏或模糊处理,不直接给出用户名是否存在的反馈。 | 33 | | 任意文件上传 | 任意文件上传漏洞的成因主要包括程序员在实现文件上传功能时对用户文件上传部分的控制不足或处理缺陷,导致用户可以越过其本身权限向服务器上传可执行的动态脚本文件。 | 攻击者可以利用这种漏洞上传一句话木马,然后通过特定的工具连接过去,获得webshell,进而控制服务器或执行恶意代码,进行数据库操作、服务器文件管理、命令执行等恶意活动。 | 1、对用户上传的文件内容进行安全检查‌,例如使用杀毒软件扫描文件,或检查文件内容是否包含敏感字符等。这有助于防止恶意代码的潜入和执行。 2、‌对用户上传的文件类型进行严格限制‌,只允许上传预定义的安全文件类型。可以通过检查文件扩展名、MIME类型等方式实现。同时,应注意防止攻击者使用伪装的文件类型绕过检查。 | 34 | | 源代码泄露 | 很多webserver对大小写是敏感的,但对后缀的大小写映射并没有做正确的处理。只要在URL中将JSP或者JHTML文件后缀从小写变成大写,Web服务器就不能正确处理这个文件后缀,而将其做为纯文本显示,攻击者可能得到这些程序的源代码。 | | 1、对所有的可能的大小写后缀增加handler处理 | 35 | | 明文传输 | 明文传输一般存在于web网站登陆页面,用户名密码采取明文传输并未采取加密。 | 容易被嗅探软件截取如果加密方式是常见的加密也可以解密的比如MD5,base64等 | 1、如对密码传输过程中进行加密使用加密方式传输,如使用javascript做密码加密然后进行传输。 | 36 | | jQuery跨站脚本 | jQuery在Web中广泛应用,当jQuery的版本大于或等于1.2且小于3.5.0的时候,即使执行了消毒(sanitize)处理,也仍会执行将来自不受信任来源的HTML传递给jQuery的DOM操作方法(即html()、.append()等),从而导致xss漏洞。jQuery中过滤用户输入数据所使用的正则表达式存在缺陷,可能导致 location.hash 跨站漏洞。 | 当受害者访问包含恶意脚本的网页时,攻击者就可以利用该漏洞来执行任意的代码,例如窃取用户的敏感信息、修改网页内容或进行其他恶意活动。 | 1、升级jQuery版本为最新版。 | 37 | | 平行越权 | 由于系统后端权限校验不严格,导致攻击者可使用一个账号尝试访问与他拥有相同权限的用户的资源。 | 攻击者可查看其他账号的信息,造成信息泄露或向其他账号中修改、插入、删除数据的风险。 | 1、后端严格校验每个用户的权限。 | 38 | | token未失效 | 由于系统配置问题,导致token在超时、退出账号等操作之后未即使失效。 | 这种长期有效的token被攻击者获取后可以获得持久的账号控制权限。 | 1、设置适当的会话过期时间:确保会话标识在一定时间后过期。根据应用的需求和风险评估,为会话设置合理的过期时间,并确保在过期后,用户需要重新进行身份验证才能继续访问会话。 2、用户退出后使token失效。 | 39 | | SSRF漏洞 | 服务端请求伪造(Server Side Request Forgery, SSRF)指的是攻击者在未能取得服务器所有权限时, 利用服务器漏洞以服务器的身份发送一条构造好的请求给服务器所在内网。SSRF攻击通常针对外部网络无法直接访问的内部系统。 | SSRF可以对外网、服务器所在内网、本地进行端口扫描,攻击运行在内网或本地的应用,或者利用File协议读取本地文件。 内网服务防御相对外网服务来说一般会较弱,甚至部分内网服务为了运维方便并没有对内网的访问设置权限验证,所以存在SSRF时,通常会造成较大的危害。 | 1、严格校验用户输入的URL,可以使用白名单过滤来限制输入,只允许特定的协议、主机和端口,列如限制请求的端口为 http 常用的端口,80、443、8080、8090 等。 2、不要把原始的响应数据返回给客户端,且过滤返回信息,在把返回结果展示给用户之前先验证返回的信息是否符合标准。 3、限制Web应用能够访问的URL范围,避免访问内网或其他敏感地址。可以配置网络访问控制列表(ACL),限制Web应用只能访问指定的外部服务。 | 40 | | URL跳转 | 开放重定向(Open Redirect),也叫URL跳转漏洞,是指服务端未对传入的跳转url变量进行检查和控制,导致诱导用户跳转到恶意网站,由于是从可信的站点跳转出去的,用户会比较信任。 | url重定向主要用来钓鱼,比如url跳转中最常见的跳转在登陆口,支付口,也就是一旦登陆将会跳转任意自己构造的网站,如果设置成自己的url则会造成钓鱼。 | 1、最有效的方法之一就是使用白名单严格控制将要跳转的域名; 2、限制referer、添加token,这样可以避免恶意用户构造跳转链接进行散播。 | 41 | | 垂直越权 | 垂直越权是一种基于URL的访问控制设计缺陷引起的漏洞,又叫做权限提升攻击。垂直越权是不同权限或者不同级别之间的越权,例如普通用户通过某种攻击手段访问到了管理员权限才能访问的功能。 | 未授权权限提升:垂直越权允许攻击者将其权限从低级别提升到高级别,可能获取对系统中更敏感和关键资源的未经授权的访问权限。这可以导致攻击者执行危险的操作,如更改配置、访问敏感数据、甚至获取对整个系统的控制权。 敏感信息泄露:如果攻击者能够以高级别的权限越权访问敏感信息,可能会导致信息泄露问题。这可能包括用户隐私数据、商业机密或其他敏感信息。 | 1、细化权限控制‌:将项目中的权限控制细化到接口层面,对每个接口进行权限校验,确保当前登录用户具有操作该接口的权限。 2、‌使用‌安全框架‌:如‌Spring Security或‌Shiro,这些框架提供了完善的权限控制机制。 3、‌用户操作权限校验‌:在用户进行操作时进行权限校验,防止通过修改参数进入未授权页面或进行非法操作。 | 42 | | 弱口令漏洞 | 弱密码是指容易被猜测或破解的密码,如使用简单的字典词汇、常见的组合或者与个人信息相关的密码。 | 攻击者可以使用暴力破解或字典攻击等手段来猜测密码,获得账号的控制权。 | 为了修复弱密码漏洞,可以使用一些密码管理工具,如LastPass和Keepass。这些工具可以帮助生成安全的密码,并保存它们在安全的地方。此外,还可以使用密码策略来限制密码的长度和复杂度。 | 43 | | Springboot信息泄露 | Actuator组件为Spring Boot提供对应用系统的监控和管理的集成功能,可以查看应用配置的详细信息。 | 如果Actuator使用不当或者一些不经意的疏忽,可能造成信息泄露等严重的安全隐患。heapdump作为Actuator组件最危险的Web接口,如Actuator配置不当,攻击者可无鉴权获取heapdump堆转储文件,分析heapdump堆转储文件进一步获取敏感信息。 | 1、引入 security 依赖,打开安全限制并进行身份验证。 2、同时设置单独的 Actuator 管理端口并配置不对外网开放,禁用不需要接口, endpoints.env.enabled= false。 | 44 | | 验证码复用 | 验证码复用,即登录失败后验证码不刷新,仍然可以使用上一次登录时的验证码且有效,存在爆破风险漏洞。 | | 1、验证码使用成功一次后需失效处理。 | 45 | | SQL查询语句泄露 | 在开发和维护 Web 应用程序时,数据库操作是一个常见的部分。当 SQL 查询在执行过程中出错时,如果错误信息(包括 SQL 查询语句和堆栈信息)直接显示在前端页面上,这种情况称为 SQL 错误堆栈泄露。错误堆栈泄露可能包含详细的 SQL 查询语句、表结构、列名等敏感信息。 | (1)暴露数据库结构:攻击者可以通过错误信息了解数据库的表结构、列名等细节。 (2)信息泄露:详细的错误信息可能泄露敏感信息,如 SQL 查询语句中的数据、应用逻辑等。 (3)注入攻击:攻击者可以利用泄露的 SQL 信息更容易地构造 SQL 注入攻击或其他类型的攻击。 | (1)错误处理和日志记录: 捕获所有可能的异常,特别是与数据库操作相关的异常,避免将详细的错误信息直接返回给用户。 将详细的错误信息记录在服务器日志中,而不是显示在前端页面上。日志应保存在受保护的位置,只有授权人员可以访问。 (2)自定义错误页面: 配置 Web 服务器或应用框架使用自定义错误页面,避免默认错误页面泄露堆栈信息。 | 46 | | 调试信息泄漏 | 调试信息泄漏漏洞‌通常发生在Web应用中,当攻击者通过特定的攻击手段触发服务器错误时,服务器会泄露敏感信息,如绝对路径、webserver版本、源代码、SQL语句等。 | 这些信息可能被恶意攻击者利用,实施进一步的攻击‌。 | ‌1、自定义错误页面‌:当服务器出现错误时,显示自定义的错误页面,而不是泄露敏感信息。 ‌2、使用统一的错误页面提示‌:确保所有错误都使用统一的错误页面提示,避免泄露具体错误信息和路径。 ‌3、关闭调试模式‌:在生产环境中关闭调试模式,避免显示详细的错误信息和调试代码。 | 47 | 48 | --------------------------------------------------------------------------------