</p>背景
无意发现国內某政企采购集团系统入口前端,我们今天开端评估Web安全怎样。
<a name="5374-1726026083994">https://xxxxwww.cn/#/login
完备的反馈建议
路径探索(Path Traversal)是一种常见的Web应用安全测试技术,主要用于查找应用程序中未公开或未保护的资源。在已知某个基础路径的情况下,可以通过构造特定的请求来探索应用程序的其他路径。以下是详细的步骤和方法:
1. 构造基本请求
首先,构造一个基本的GET请求,用于探索路径:- <font size="3">Http</font>
复制代码- <font size="3">深色版本</font>
复制代码- <font size="3">GET https://zzwwxxx.com/xxxx-spm-contract-center/api/</font>
复制代码 2. 探索常见路径
接下来,实行访问一些常见的路径,以了解应用程序的结构:- <font size="3">Http</font>
复制代码- <font size="3">深色版本</font>
复制代码- <font size="3">GET https://zzwwxxx.com/xxxx-spm-contract-center/api/v1/</font>
复制代码- <font size="3">GET https://zzwwxxx.com/xxxx-spm-contract-center/api/admin/</font>
复制代码- <font size="3">GET https://zzwwxxx.com/xxxx-spm-contract-center/api/private/</font>
复制代码- <font size="3">GET https://zzwwxxx.com/xxxx-spm-contract-center/api/public/</font>
复制代码- <font size="3">GET https://zzwwxxx.com/xxxx-spm-contract-center/api/docs/</font>
复制代码 3. 使用通配符
实行使用通配符来探索可能存在的路径:- <font size="3">Http</font>
复制代码- <font size="3">深色版本</font>
复制代码- <font size="3">GET https://sp.com.xxxx.com.cn/xxxx-spm-contract-center/api/*</font>
复制代码 4. 实行目录遍历
构造路径遍历请求,实行访问应用程序的其他目录:- <font size="3">Http</font>
复制代码- <font size="3">深色版本</font>
复制代码- <font size="3">GET https://zzwwxxx.com/xxxx-spm-contract-center/api/../../../../etc/passwd</font>
复制代码- <font size="3">GET https://zzwwxxx.com/xxxx-spm-contract-center/api/../../../../var/log/apache2/access.log</font>
复制代码- <font size="3">GET https://zzwwxxx.com/xxxx-spm-contract-center/api/../../../../var/log/nginx/access.log</font>
复制代码 5. 使用相对路径
实行使用相对路径来探索其他资源:- <font size="3">Http</font>
复制代码- <font size="3">深色版本</font>
复制代码- <font size="3">GET https://zzwwxxx.com/xxxx-spm-contract-center/api/../../admin/</font>
复制代码- <font size="3">GET https://zzwwxxx.com/xxxx-spm-contract-center/api/../../private/</font>
复制代码- <font size="3">GET https://zzwwxxx.com/xxxx-spm-contract-center/api/../../conf/application.properties</font>
复制代码 6. 测试隐藏文件
实行访问隐藏文件:- <font size="3">Http</font>
复制代码- <font size="3">深色版本</font>
复制代码- <font size="3">GET https://zzwwxxx.com/xxxx-spm-contract-center/api/.htaccess</font>
复制代码- <font size="3">GET https://zzwwxxx.com/xxxx-spm-contract-center/api/.env</font>
复制代码- <font size="3">GET https://zzwwxxx.com/xxxx-spm-contract-center/api/.gitignore</font>
复制代码 7. 测试文件上传目录
如果应用程序有文件上传功能,实行访问上传目录:- <font size="3">Http</font>
复制代码- <font size="3">深色版本</font>
复制代码- <font size="3">GET https://zzwwxxx.com/xxxx-spm-contract-center/api/uploads/</font>
复制代码- <font size="3">GET https://zzwwxxx.com/xxxx-spm-contract-center/api/images/</font>
复制代码- <font size="3">GET https://zzwwxxx.com/xxxx-spm-contract-center/api/data/</font>
复制代码 8. 测试其他敏感路径
实行访问其他可能存在的敏感路径:- <font size="3">Http</font>
复制代码- <font size="3">深色版本</font>
复制代码- <font size="3">GET https://zzwwxxx.com/xxxx-spm-contract-center/api/logs/</font>
复制代码- <font size="3">GET https://zzwwxxx.com/xxxx-spm-contract-center/api/dbconfig/</font>
复制代码- <font size="3">GET https://zzwwxxx.com/xxxx-spm-contract-center/api/system/</font>
复制代码 9. 使用自动化工具
可以使用自动化工具如Burp Suite、Nikto或DirBuster来辅助进行路径探索:- <font size="3">Shell</font>
复制代码- <font size="3">深色版本</font>
复制代码- <font size="3">nikto -h zzwwxxx.com -p 443 -C all</font>
复制代码- <font size="3">dirb https://zzwwxxx.com/xxxx-spm-contract-center/api/</font>
复制代码 10. 记录结果
记录每次请求的响应状态码(如200、404等),并分析响应内容,查看是否有意外袒露的信息或新的路径。
注意事项
- 合法授权:确保全部测试都在合法授权范围内进行。
- 最小影响:尽量减少对生产环境的影响,制止业务中断。
- 记录与报告:记录每一步测试的结果和发现的问题,编写排泄测试报告,汇总发现的全部漏洞,并提出改进建议。
通过上述测试,可以发现应用程序中存在的潜在安全漏洞,帮助提升系统的安全性。
与AI交互,辅助提供一些排泄的关注点与思路
进一步跟进
安全漏洞检测过程
一. 匿名上传图片安全漏洞
图床
<a name="1782-1726026096802">
详情请求HTTP RAW
<a name="5833-1726026084186">POST /zzwwxx-spm-contract-center/api/v1/aliyunOss/files/oosFileUpload
HTTP/1.1
<a name="2167-1726026084440">Connection: keep-alive
Content-Length: 71392
<a name="7590-1726026084440">sec-ch-ua: "Not_A Brand";v="99", "Google Chrome";v="109", "Chromium";v="109"
sec-ch-ua-platform: "Windows"
<a name="6050-1726026084440">sec-ch-ua-mobile: ?0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36
<a name="5896-1726026084440">Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryGJ2xAS9diAdgIvAF
Accept: */*
<a name="0049-1726026084440">Origin: https://xxxxwww.cn
Sec-Fetch-Site: same-origin
<a name="0051-1726026084440">Sec-Fetch-Mode: cors
Sec-Fetch-Dest: empty
<a name="3260-1726026084440">Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
<a name="7549-1726026084440">Cookie: tfstk=f2fxdBMXXuq0Iz3-eAwksMxCdEauE1Qqei7IshxmCgIRmN5DCoRc65Q2qsxcoNtOB31OisADoOL6V_tcmtbiuTShRjf03Cc9gCR_xkV3tq72_C1qyJZIuQTH5FNMljTWrqOlgkV3tZwXuCb7xPyPogtp5CTX1ft7ye891FT1f39WRemX1GO_yLT6RxijGxT7NExWfCO1faT8hlKSlhcOCRvlwpEdmfG1G5Jvvx-WzU1JkKKBn3h15_LvHH_fghLOuU1lwpvoSzO58TjXyBFohB_RCMBCbJDyMN6fJQC7AvxGSn9dGLF-MH1VP6RWEWadP_Scu_Qi55Tlx3_VGCFQ8IdXcQLPsulXXT61iKRZckvV5TIJkBsPj6fKT1nHvFDbyzHZQKTyiwFvtBgJfWTJxrFtQAJzzUK3yzHZQKTyyH4YJAkwUz5..; acw_tc=0bdd26d217260257890752116ee7d5e70ec8b8d275b50b76b567ce83702f1c
------WebKitFormBoundaryGJ2xAS9diAdgIvAF
<a name="2730-1726026084440">Content-Disposition: form-data; name="file"; filename="ningmeng0.png"
Content-Type: image/png
<a name="3828-1726026086241">
HTTP/1.1 200
<a name="3590-1726026093120">Date: Wed, 11 Sep 2024 03:37:15 GMT
Content-Type: application/json;charset=UTF-8
<a name="1065-1726026093120">Connection: keep-alive
Vary: Origin
<a name="3897-1726026093120">Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
<a name="4073-1726026093120">Access-Control-Allow-Origin: https://xxxxwww.cn
Access-Control-Expose-Headers: Header1, Header2
<a name="1244-1726026093120">Access-Control-Allow-Credentials: true
Content-Length: 599
<a name="3060-1726026093120">
{"payload":[{"id":null,"contractId":null,"name":"ningmeng0.png","contentType":"image/png","size":71206,"url":"https://xxxxwww.cn.aliyuncs.com/prd/spm/6d2de3c2-0746-4ee0-9059-ea9d70668829.png","remark":null,"createdTime":"2024-09-11 11:37:15","updatedTime":null,"createdBy":null,"updatedBy":null,"previewUrl":"https://xxxxwww.cn.aliyuncs.com/prd/spm/6d2de3c2-0746-4ee0-9059-ea9d70668829.png?Expires=4879625835&OSSAccessKeyId=LTAI4FmLxLPaXzVToEtEPiiM&Signature=kk4WjhRIpYE1RZmZzq5Eyg8ZXrc%3D"}],"code":"0","msg":"ok","traceId":"6fb91d3cdbf14b669e4fae129b367431.95.17260258356632161"}
<a name="6980-1726026155153">
可以直接下载
<a name="6598-1726026155304">https://xxxxwww.cn.aliyuncs.com/prd/spm/6d2de3c2-0746-4ee0-9059-ea9d70668829.png
<a name="3883-1726818606295">AccessDenied
The bucket you access does not belong to you.
<a name="1072-1726818606295">66ED28FE874A1E36350870B5
xxxxwww.cn.aliyuncs.com
<a name="6826-1726818606295">0003-00000905
通过上信息分析
1. 基于阿里云OSS存储上传文件与图片
<a name="9618-1726816860927">
图床可能的安全漏洞
敏感信息泄露:
<a name="8823-1726816891958">图床在处理图片上传时,如果未对图片中的EXIF(Exchangeable Image File Format)信息或其他元数据进行处理,可能会泄露拍摄装备、位置等敏感信息。别的,如果图床系统存在配置不妥或漏洞,攻击者可能通过上传包罗恶意代码的图片来利用这些漏洞,进而获取更多敏感信息或实行未授权操作。
跨站脚本攻击(XSS):
<a name="9496-1726816894703">如果图床系统未对上传的图片内容或链接进行充实过滤和验证,攻击者可能通过上传包罗恶意脚本的图片或链接,在用户欣赏图片时触发XSS攻击,从而窃取用户信息、会话令牌等敏感数据。
文件上传漏洞:
<a name="5930-1726816896471">图床的核心功能之一是处理图片上传,如果上传功能存在漏洞,如未对文件范例、大小、内容等进行严格限制和验证,攻击者可能上传恶意文件(如Webshell、病毒等),进而控制服务器或实行其他恶意操作。
对标OWASP Top 10 2023,我们可以从以下几个方面来分析可能存在的漏洞:
<a name="9013-1726816806759">1. 敏感信息泄露(A3: Sensitive Data Exposure)
问题形貌:图床在处理图片上传时,如果未对图片中的EXIF信息或其他元数据进行处理,可能会泄露拍摄装备、位置等敏感信息。别的,如果图床系统存在配置不妥或漏洞,攻击者可能通过上传包罗恶意代码的图片来利用这些漏洞,进而获取更多敏感信息。
<a name="3975-1726816806759">对应OWASP Top 10 2023:这一漏洞直接对应于OWASP Top 10 2023中的A3(敏感数据泄露)。敏感数据泄露是Web应用程序中常见的安全风险之一,它可能导致个人隐私泄露、商业秘密被窃取等严重后果。
2. 跨站脚本攻击(XSS)(A7: Cross-Site Scripting (XSS))
<a name="7098-1726816806759">问题形貌:如果图床系统未对上传的图片内容或链接进行充实过滤和验证,攻击者可能通过上传包罗恶意脚本的图片或链接,在用户欣赏图片时触发XSS攻击。XSS攻击答应攻击者在用户欣赏器中实行恶意脚本,从而窃取用户信息、会话令牌等敏感数据。
对应OWASP Top 10 2023:这一漏洞直接对应于OWASP Top 10 2023中的A7(跨站脚本)。XSS是一种常见的Web安全漏洞,它利用Web应用程序对用户输入数据的不妥处理,使得攻击者可以或许在用户欣赏器中实行恶意脚本。
<a name="7639-1726816806760">3. 文件上传漏洞(可能涉及A8: Insecure Deserialization 或 A9: Using Components with Known Vulnerabilities)
问题形貌:图床的核心功能之一是处理图片上传,如果上传功能存在漏洞,如未对文件范例、大小、内容等进行严格限制和验证,攻击者可能上传恶意文件(如Webshell、病毒等),进而控制服务器或实行其他恶意操作。虽然文件上传漏洞本身没有直接对应的OWASP Top 10 2023项,但它可以视为一种特殊的输入验证问题,也可能由于使用了含有已知漏洞的组件(如文件处理库)而导致。
<a name="5080-1726816806760">对应OWASP Top 10 2023:文件上传漏洞可能间接对应于A8(不安全的反序列化)或A9(使用含有已知漏洞的组件)。然而,更直接地,它可能被视为一种未受保护的输入验证问题,其严重性足以引起高度器重。在OWASP Top 10 2023中,虽然没有直接列出文件上传漏洞作为单独的项,但夸大了输入验证和使用安全组件的紧张性,这些都是防止文件上传漏洞的关键措施。
4. 访问控制不妥(可能涉及A5: Broken Access Control)
<a name="6090-1726816806760">问题形貌:如果图床系统的访问控制机制存在漏洞,如权限设置不妥、认证机制不完善等,攻击者可能绕过正常的访问控制流程,访问或修改未授权的资源。
对应OWASP Top 10 2023:这一漏洞可能间接对应于OWASP Top 10 2023中的A5(失效的访问控制)。失效的访问控制是Web应用程序中常见的安全风险之一,它可能导致未授权用户访问敏感数据或实行敏感操作。在图床系统中,如果访问控制不妥,攻击者可能利用这一漏洞获取敏感信息或实行恶意操作。
<a name="3954-1726816925910">
二. 扫描服务器基础信息与服务端信息泄露
<a target="_blank" href="https://sp.comix.com.cn/comix-spm-contract-center/api" rel="noopener nofollow">https://xxxxwww.cn/zzwwxx-spm-contract-center/api
POST https://xxxxwww.cn/zzwwxx-spm-contract-center/api/v1/aliyunOss/files/oosFileUpload HTTP/1.1
<a name="9738-1726817392729">Host: xxxxwww.cn
Content-Length: 0
<a name="9371-1726817392729">Accept: application/json
X-Requested-With: XMLHttpRequest
<a name="7053-1726817392729">User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36
HTTP/1.1 200
<a name="7790-1726817392729">Date: Fri, 20 Sep 2024 07:27:35 GMT
Content-Type: application/json;charset=UTF-8
<a name="9935-1726817392729">Connection: keep-alive
Set-Cookie: acw_tc=0b3c7d9e17268172556646552e5e60097bf76eab64bbf15f31c8235bc25184;path=/;HttpOnly;Max-Age=1800
<a name="6483-1726817392729">Content-Length: 306
{"payload":null,"code":"500","msg":"Current request is not of type [org.springframework.web.multipart.MultipartHttpServletRequest]: ServletWebRequest: uri=/zzwwxx-spm-contract-center/api/v1/aliyunOss/files/oosFileUpload;client=172.17.3.108","traceId":"673122c0467f45df90a059355f0662e0.90.17268172556794041"}
</blockquote><a name="3025-1726817393335">
分析 后端基于SpringBoot技术研发
<a name="5114-1726026156017">
为了进一步进行排泄测试,可以考虑以下几个方向:
<a name="2628-1726817595991">l 测试差别的上传数据:实行发送一个包罗文件的正确格式的multipart/form-data请求。可以使用工具如curl或者Postman来构造请求,并观察服务器的响应。
l 文件扩展名检查绕过:实行上传差别范例的文件,尤其是那些可能绕过服务器端文件扩展名检查的文件(例如,将恶意脚本伪装成图片文件)。
<a name="6587-1726817595991">l 上传目录遍历攻击:构造请求,实行利用路径遍历漏洞来上传到非预期的位置。
l 权限检查绕过:如果应用有权限检查机制,实行寻找绕过这些检查的方法。
<a name="7753-1726817595991">l 文件大小限制:实行上传过大或过小的文件,以检查服务器是否对文件大小有限制,并观察其反应。
l 输入验证与SQL注入:尽管这是一个文件上传接口,但仍需检查是否有SQL注入或其他输入验证绕过的可能性。
<a name="3778-1726817849248">
三. 存在文件内容上传安全漏洞
MIME范例检查绕过:更改上传文件的MIME范例,能绕过服务器的安全检查
<a name="3824-1726817874633">
HTTP/1.1 200
<a name="8928-1726817907357">Date: Fri, 20 Sep 2024 07:36:03 GMT
Content-Type: application/json;charset=UTF-8
<a name="5990-1726817907357">Connection: keep-alive
Set-Cookie: acw_tc=0b3c7d9e17268177636665625e5f024f4f1db46c691e6462fb6c832c61376c;path=/;HttpOnly;Max-Age=1800
<a name="2828-1726817907357">Content-Length: 594
{"payload":[{"id":null,"contractId":null,"name":"aaa.jpg","contentType":"image/jpeg","size":68096,"url":"https://xxxxwww.cn.aliyuncs.com/prd/spm/cd00296c-ac86-4282-b303-623f040de6f5.jpg","remark":null,"createdTime":"2024-09-20 15:36:03","updatedTime":null,"createdBy":null,"updatedBy":null,"previewUrl":"https://xxxxwww.cn.aliyuncs.com/prd/spm/cd00296c-ac86-4282-b303-623f040de6f5.jpg?Expires=4880417763&OSSAccessKeyId=LTAI4FmLxLPaXzVToEtEPiiM&Signature=mL2xPiAJmvlm0C6mcByEiqpm4PM%3D"}],"code":"0","msg":"ok","traceId":"b5e3cdbdff2041958c017b1b0be78aa7.94.17268177638354237"}
<a name="4171-1726817958520">
我们下载这个图片重名为exe
<a name="7434-1726817968601">
四. 文件上传接口没有文件体积参数校验
50MB图片上传成功
<a name="6850-1726818244063">
HTTP/1.1 200
<a name="9178-1726818229573">Date: Fri, 20 Sep 2024 07:42:34 GMT
Content-Type: application/json;charset=UTF-8
<a name="5628-1726818229573">Connection: keep-alive
Set-Cookie: acw_tc=0b3c7d9e17268181389512049e5ec13f65cd42244929376e85551cc52a593e;path=/;HttpOnly;Max-Age=1800
<a name="3687-1726818229573">Content-Length: 602
{"payload":[{"id":null,"contractId":null,"name":"wind.jpg","contentType":"image/jpeg","size":57357160,"url":"https://xxxxwww.cn.aliyuncs.com/prd/spm/c2fac335-c453-49de-931f-e3c4baf26555.jpg","remark":null,"createdTime":"2024-09-20 15:42:34","updatedTime":null,"createdBy":null,"updatedBy":null,"previewUrl":"https://xxxxwww.cn.aliyuncs.com/prd/spm/c2fac335-c453-49de-931f-e3c4baf26555.jpg?Expires=4880418154&OSSAccessKeyId=LTAI4FmLxLPaXzVToEtEPiiM&Signature=de0L1Fxuk%2BiSeYjxcpjwaJspc%2Bo%3D"}],"code":"0","msg":"ok","traceId":"b5e3cdbdff2041958c017b1b0be78aa7.93.17268181532084315"}
<a name="3447-1726818230048">
PDF文件可以上传成功</b>
<a name="2883-1726818488289">
HTTP/1.1 200
<a name="1340-1726818479559">Date: Fri, 20 Sep 2024 07:47:30 GMT
Content-Type: application/json;charset=UTF-8
<a name="5450-1726818479559">Connection: keep-alive
Set-Cookie: acw_tc=0b3c7d9e17268184502772587e5dccadfe5242e52f79d101ba7457b23b9397;path=/;HttpOnly;Max-Age=1800
<a name="1029-1726818479559">Content-Length: 681
{"payload":[{"id":null,"contractId":null,"name":"2024-2030年中国鲜花电商行业市场深度分析及发展趋势猜测报告.pdf","contentType":"application/pdf","size":20973,"url":"https://xxxxwww.cn.aliyuncs.com/prd/spm/a8d8a09e-76e2-4b74-a0f5-52ed1e7bfe9f.pdf","remark":null,"createdTime":"2024-09-20 15:47:30","updatedTime":null,"createdBy":null,"updatedBy":null,"previewUrl":"https://xxxxwww.cn.aliyuncs.com/prd/spm/a8d8a09e-76e2-4b74-a0f5-52ed1e7bfe9f.pdf?Expires=4880418450&OSSAccessKeyId=LTAI4FmLxLPaXzVToEtEPiiM&Signature=8TR0I%2BoscvZ%2FptWyV1mfIjKyszs%3D"}],"code":"0","msg":"ok","traceId":"b5e3cdbdff2041958c017b1b0be78aa7.96.17268184504034339"}
<a name="6070-1726819286792">
直接上传HTML被拒绝,感觉是阿里云OSS本身安全机制
<a name="4112-1726819297953">重命名为jpg也拒绝
<blockquote>HTTP/1.1 405 Not Allowed
<a name="3978-1726819298643">Server: Tengine
Date: Fri, 20 Sep 2024 08:01:01 GMT
<a name="1371-1726819298643">Content-Type: text/html; charset=utf-8
Connection: keep-alive
<a name="8717-1726819298643">Set-Cookie: acw_tc=0b3c7d9e17268192613863005e5dd19f5750d6d602d7e66aed9ce9d4fd9992;path=/;HttpOnly;Max-Age=1800
Cache-Control: no-cache, no-store
<a name="3671-1726819298643">Pragma: no-cache
Punish-Loc: keepper
<a name="3127-1726819298643">Punish-Cache: hit
Content-Length: 3524
<a name="3030-1726819298643">
405<img id="block_image"> <a target="_blank"id="report"href="https://www.cnblogs.com/javascript:;"data-spm-click="gostr=/waf.123.123;locaid=d001;">误报反馈{"traceid":"0b3c7d9e17268192613863005e5dd1","lang":"cn"}1. 康健检查端点:访问/actuator/health检查是否袒露了过多的信息。
<a name="6092-1726819732393">https://xxxxwww.cn/zzwwxx-spm-contract-center/actuator/health
{"status":"UP","details":{"diskSpace":{"status":"UP","details":{"total":63274295296,"free":22922428416,"threshold":10485760}},"db":{"status":"UP","details":{"database":"MySQL","hello":1}},"mail":{"status":"UP","details":{"location":"smtp.exmail.qq.com:25"}},"refreshScope":{"status":"UP"},"discoveryComposite":{"status":"UP","details":{"discoveryClient":{"status":"UP","details":{"services":["zzwwxx-spm-staff-center","zzwwxx-spm-contract-center","zzwwxx-spm-servicer-center"]}},"eureka":{"description":"Remote status from Eureka server","status":"UP","details":{"applications":{"ZZWWXX-SPM-STAFF-CENTER":2,"ZZWWXX-SPM-CONTRACT-CENTER":2,"ZZWWXX-SPM-SERVICER-CENTER":2}}}}},"hystrix":{"status":"UP"},"redis":{"status":"UP","details":{"version":"5.0.5"}}}}
<a name="4786-1726819790266">
https://xxxxwww.cn/zzwwxx-spm-contract-center/actuator/
{"_links":{"self":{"href":"http://xxxxwww.cn/zzwwxx-spm-contract-center/actuator","templated":false},"health":{"href":"http://xxxxwww.cn/zzwwxx-spm-contract-center/actuator/health","templated":false},"health-component":{"href":"http://xxxxwww.cn/zzwwxx-spm-contract-center/actuator/health/{component}","templated":true},"health-component-instance":{"href":"http://xxxxwww.cn/zzwwxx-spm-contract-center/actuator/health/{component}/{instance}","templated":true}}}
<a name="8626-1726819851385">
袒露的信息
<a name="9658-1726820369428">数据库信息
l 数据库范例:MySQL
<a name="7339-1726820369428">l 连接状态:UP
l 潜在风险:确认数据库连接字符串是否袒露,测试是否存在SQL注入漏洞。
<a name="4070-1726820369428">l 进一步测试:实行访问数据库,获取表结构和数据。
磁盘空间
<a name="3518-1726820369428">l 总磁盘空间:63GB
l 可用空间:40GB
<a name="8256-1726820369428">l 潜在风险:如果磁盘空间不足,可能会导致应用性能降落。
l 进一步测试:实行上传大文件,测试磁盘使用情况。
<a name="2027-1726820369428">Redis信息
l Redis版本:5.0.5
<a name="8810-1726820369428">l 潜在风险:确认Redis是否需要认证,测试是否存在未授权访问风险。
l 进一步测试:实行连接Redis实例,查看是否可以读写数据。
<a name="7279-1726820369428">服务发现信息
l 注册的服务:zzwwxx-spm-staff-center, zzwwxx-spm-contract-center, zzwwxx-spm-servicer-center
<a name="1819-1726820369428">l 潜在风险:确认服务发现机制是否安全,测试是否存在横向移动的可能性。
l 进一步测试:实行访问其他服务的端点,查看是否存在未授权访问风险。
<a name="4211-1726820369428">邮件服务信息
l 邮件服务器地点:smtp.exmail.qq.com:25
<a name="2945-1726820369428">l 潜在风险:确认邮件服务器是否需要认证,测试是否存在未授权发送邮件的风险。
六. WEB安全基线扫描
Web安全基线扫描是指对Web应用程序及其相关基础设施进行全面的安全检查,以确保它们符合一定的安全标准或最佳实践。这种扫描旨在识别和修复潜在的安全漏洞,从而降低被攻击的风险。以下是详细的步骤和方法来形貌Web安全基线扫描的过程:
1. 确定扫描范围
- 定义目标:确定要扫描的Web应用程序及其相关组件(如数据库、文件系统等)。
- 收集信息:包括应用程序的URL、IP地点、端口号以及任何相关的登录凭证。
2. 使用自动化工具
- 选择合适的工具:常用的Web安全扫描工具有AppScan,OWASP ZAP、Burp Suite、Nikto、Acunetix等。
- 配置工具:设置扫描参数,如扫描深度、速率、是否进行登录等。
- 实行扫描:启动扫描工具,开始自动扫描。
3. 手动测试
- 登录测试:测试登录页面是否存在漏洞,如弱密码、验证码绕过等。
- 输入验证:测试输入框是否存在SQL注入、XSS、CSRF等漏洞。
- 文件上传:测试文件上传功能是否存在漏洞,如上传恶意文件、文件名绕过等。
- 会话管理:测试会话管理机制是否安全,如Session固定、会话超时等。
- 敏感信息泄露:检查是否存在泄露敏感信息的情况,如数据库配置、API密钥等。
- 权限测试:测试权限管理机制是否严格,是否存在越权访问漏洞。
4. 检查配置和环境
- 安全配置:检查应用程序的安全配置,如SSL/TLS证书配置、HTTP响应头(如CSP、HSTS等)。
- 环境配置:检查服务器环境配置,如操作系统补丁更新、防火墙规则等。
- 日志管理:检查日志记录是否完备,能否用于追踪安全事件。
5. 分析扫描结果
- 整理报告:整理扫描工具输出的报告,提取关键信息。
- 人工复核:对自动扫描结果进行人工复核,排除误报。
- 优先级排序:根据漏洞的危害水平对漏洞进行优先级排序。
6. 修复漏洞
- 制定修复计划:根据漏洞的严重性和优先级制定修复计划。
- 实施修复:按照计划修复漏洞,确保每个漏洞都得到妥善处理。
- 验证修复:修复完成后,再次进行扫描验证漏洞是否已经被有效修复。
7. 文档记录
- 编写报告:编写详细的排泄测试报告,记录测试过程、发现的问题及修复方案。
- 持续监控:建立持续监控机制,定期进行安全基线扫描,确保系统的安全性。
8. 教育培训
- 安全意识培训:定期对开发人员和运维人员进行安全意识培训,增强他们的安全意识。
- 最佳实践分享:分享安全最佳实践,鼓励团队成员学习和应用安全知识。
注意事项
动态应用程序安全测试 (DAST) 是在运行时分析 Web 应用程序以识别安全漏洞或缺陷的过程。
我们开端使用HLC AppScan扫描发现的漏洞
安全问题的详细分析和处理建议
根据《网络安全等级保护标准》第三级的要求,我们需要对差别范例的漏洞进行详细的评估和处理。以下是针对所提到的安全问题的详细分析和处理建议:
1. 匿名上传图片安全漏洞
评估
匿名上传:答应任何人上传图片,增加了恶意内容上传的风险。未验证上传内容:上传的图片可能包罗恶意代码、木马、病毒等。缺乏访问控制:上传的图片可能被未授权用户访问或流传。
处理建议
身份验证:要求用户在上传图片进步行身份验证。实施OAuth、JWT等认证机制。
上传内容验证:
使用图像处理库检查上传的图片是否含有恶意内容。进行文件扩展名和MIME范例检查,确保上传的是合法的图片文件。
访问控制:
对上传的图片设置访问控制权限,仅答应授权用户访问。使用CDN服务对图片进行访问控制。
日志记录与监控:
记录全部上传图片的操作日志,并定期审查。设置监控机制,检测异常上传行为。
2. 扫描服务器基础信息与服务端信息泄露
评估
基础信息泄露:如操作系统版本、中心件版本等信息可能被攻击者利用进行进一步攻击。
服务端信息泄露:如数据库版本、应用框架版本等信息也可能被攻击者利用。
处理建议
隐藏敏感信息:
修改HTTP响应头,移除Server字段。使用自定义的错误页面,制止袒露应用框架或中心件的详细版本号。
强化配置:
关闭不必要的服务和端口。配置防火墙规则,限制对敏感端口和服务的访问。
定期扫描与加固:
使用自动化工具(如Nessus、OpenVAS等)定期扫描服务器。根据扫描结果加固服务器配置。
日志记录与监控:
记录服务器访问日志,并定期审查。设置入侵检测系统(IDS)或入侵预防系统(IPS)监控异常行为。
3. 存在文件内容上传漏洞
评估
上传文件内容:上传的文件可能包罗恶意代码或脚本。未验证上传文件:上传的文件未履历证即被保存和使用。
处理建议
上传文件验证:
检查上传文件的扩展名是否合法。使用文件签名或MD5/SHA1校验上传文件的完备性。确认上传文件的内容是否包罗恶意代码。
限制上传目录:
将上传文件保存在一个专门的目录中,并限制对该目录的访问权限。禁止上传文件直接实行。
文件访问控制:
对上传文件设置访问控制,仅答应授权用户访问。使用CDN服务对文件进行访问控制。
日志记录与监控:
记录全部上传文件的操作日志,并定期审查。设置监控机制,检测异常上传行为。
4. 文件上传接口没有文件体积参数校验
评估
文件体积过大:可能导致服务器磁盘空间耗尽或消耗过多资源。拒绝服务攻击(DoS):攻击者可能通过上传大文件发起DoS攻击。
处理建议
设置文件大小限制:
在客户端限制上传文件的最大大小。
在服务器端进行文件大小检查,超出限制则拒绝上传。
日志记录与监控:
记录全部上传文件的操作日志,并定期审查。设置监控机制,检测异常上传行为。
5. 发现Spring Boot Actuator袒露端点
评估
袒露端点:如/actuator/health, /actuator/env, /actuator/mappings等袒露了敏感的应用程序信息。
潜在风险:攻击者可能利用这些端点获取应用程序的详细信息,进而发动攻击。
处理建议
关闭不必要的端点:
修改application.properties或application.yml文件,关闭不必要的端点。
`properties
management.endpoints.web.exposure.include=health
management.endpoints.web.exposure.exclude=env,mappings,metrics
`
身份验证与授权:
对全部袒露的端点实施身份验证。
使用Spring Security或其他安全框架保护端点。
强化配置:
确保全部袒露端点只答应内部网络访问。
使用HTTPS加密通信。
日志记录与监控:
记录全部访问袒露端点的操作日志,并定期审查。
设置监控机制,检测异常访问行为。
通过上述评估和处理建议,可以有效地办理上述提到的安全问题,确保系统的安全性。需要注意的是,在实际操作中,应联合详细情况调解和优化上述建议,确保系统的团体安全性达到等级保护三级的要求。别的,还需要定期进行安全审计和评估,确保系统的安全防护措施始终处于最新和最有效的状态。
登录接口
POST https://xxxxwww.cn/zzwwxx-spm-staff-center/api/v1/login/loginByCode?_=1726879777605 HTTP/1.1
<a name="5428-1726879799287">Host: xxxxwww.cn
Connection: keep-alive
<a name="3212-1726879799287">Content-Length: 47
sec-ch-ua: "Chromium";v="128", "Not;A=Brand";v="24", "Google Chrome";v="128"
<a name="9386-1726879799287">Accept: application/json, text/plain, */*
sec-ch-ua-platform: "Windows"
<a name="3616-1726879799287">sec-ch-ua-mobile: ?0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36
<a name="6884-1726879799287">Content-Type: application/json
Origin: https://xxxxwww.cn
<a name="4137-1726879799287">Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: cors
<a name="9460-1726879799287">Sec-Fetch-Dest: empty
Referer: https://xxxxwww.cn/
<a name="1732-1726879799287">Accept-Encoding: gzip, deflate, br, zstd
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
<a name="1614-1726879799287">Cookie: acw_tc=0bca392617268794835698364e2d348f7087de6d5666f0c7a397b6ad6e4b9f
{"userCode":"adfas2","password":"MjM0MjQzMg=="}
<a name="4117-1726879809396">
HTTP/1.1 200
<a name="8759-1726879809801">Date: Sat, 21 Sep 2024 00:49:37 GMT
Content-Type: application/json;charset=UTF-8
<a name="4619-1726879809801">Connection: keep-alive
Vary: Origin
<a name="1778-1726879809801">Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
<a name="3451-1726879809801">Access-Control-Allow-Origin: https://xxxxwww.cn
Access-Control-Allow-Credentials: true
<a name="2491-1726879809801">Content-Length: 146
{"payload":null,"code":"100002","msg":"用户名或密码不正确,请检查","traceId":"43f1a5334faa44d9a0255feae1462e63.67.17268797778538071"}
<a name="9380-1726879907458">
AI辅助分析请求响应报文与安全建议
信息泄露
端口袒露<a target="_blank" href="https://sp.comix.com.cn/comix-spm-staff-center/actuator/health" rel="noopener nofollow">https://xxxxwww.cn/zzwwxx-spm-staff-center/actuator/health
通过逆向前端JS中,可以看到一些HTTP接口
<a name="7325-1726880819949">https://xxxxwww.cn/guoke-deepexi-m-door-pc/9864717.js
var r = "/guoke-deepexi-staff-center/api/v1"
<a name="2023-1726880820420"> , o = r + "/staff/login/sendRegistVerificationCode"
, c = r + "/staff/login/loginByCode"
<a name="7463-1726880820420"> , l = r + "/staff/login/loginByPhone"
, f = r + "/common/login/getCurrentApps"
<a name="6314-1726880820420"> , d = r + "/staff/UcMerchantUser/updateUserPassword"
, m = r + "/common/login/chooseApps"
<a name="3133-1726880820420"> , h = r + "/staff/app/pageList"
, y = r + "/staff/app/save"
<a name="6875-1726880820420"> , v = r + "/staff/app/deleteById"
, x = r + "/staff/appResource/getAppResourceTree"
<a name="1426-1726880820420"> , w = r + "/staff/appResource/save"
, O = r + "/staff/appResource/update"
<a name="9835-1726880820420"> , j = r + "/staff/UcAppGroup/getAll"
, _ = r + "/staff/appResource/deleteById"
<a name="7068-1726880820420"> , C = r + "/staff/appResource/sort"
, P = r + "/staff/app/update"
<a name="1537-1726880820420"> , k = r + "/staff/UcMerchantUser/getById"
, $ = r + "/staff/UcMerchantUser/update"
<a name="8382-1726880820420"> , S = r + "/staff/login/sendVerificationCode"
, R = r + "/staff/appResource/addRelationCompany"
<a name="6340-1726880820420"> , A = r + "/staff/appResource/deleteAllRelationCompanyByAppResourceIdList"
, E = r + "/staff/appResource/getCompanyByCompanyName"
<a name="6173-1726880820420"> , T = r + "/staff/appResource/deleteRelationCompanyByAppResourceIdListAndCompanyId"
, I = r + "/staff/app/getAppResourceByAppId"
<a name="1255-1726880820420"> , L = r + "/staff/appResource/getCompanyByAppResourceId"
, U = r + "/staff/UcAppGroup/getAll"
<a name="1759-1726880820420"> , M = r + "/merchant/role/getMerchantRolePageList"
, D = r + "/merchant/role/getRoleResourceTreeByRoleId"
<a name="8893-1726880820420"> , N = r + "/merchant/role/deleteById"
, B = r + "/merchant/role/save"
<a name="7458-1726880820420"> , z = r + "/merchant/role/update"
, H = r + "/merchant/role/saveRoleResourceTree"
<a name="8989-1726880820420"> , F = r + "/staff/UcMerchantApp/getAppByCompanyId"
, V = r + "/staff/UcMerchantUser/pageList"
<a name="8878-1726880820420"> , G = r + "/staff/UcMerchantUser/save"
, K = r + "/staff/UcMerchantUser/updateStatusById"
<a name="3095-1726880820420"> , W = r + "/staff/UcMerchantUser/deleteById"
, J = r + "/staff/UcMerchantUser/getUserPower"
<a name="2871-1727252906225"> , X = r + "/staff/UcMerchantUser/updateUserAuditStatus"
, Y = r + "/staff/UcMerchantUser/addUserPower"
<a name="6199-1726880820420"> , Q = r + "/staff/UcMerchantPostInst/update"
, Z = r + "/staff/UcMerchantPostInst/deletePositionInstByUserId"
<a name="4264-1726880820420"> , ee = r + "/staff/UcOrganization/getAllUcOrganization"
, te = r + "/staff/UcOrganization/deleteById"
<a name="7354-1726880820420"> , ne = r + "/staff/UcOrganization/getById"
, re = r + "/staff/UcOrganization/update"
<a name="6220-1726880820420"> , oe = r + "/staff/UcOrganization/save"
, ae = r + "/staff/UcMerchantPosition/pageList"
<a name="1228-1726880820420"> , ie = r + "/staff/UcMerchantPosition/getAllUcMerchantPosition"
, se = r + "/staff/UcMerchantPosition/getById"
<a name="2686-1726880820420"> , ce = r + "/staff/UcMerchantPosition/deleteById"
, ue = r + "/staff/UcMerchantPosition/update"
<a name="4211-1726880820420"> , le = r + "/staff/UcMerchantPosition/save"
, fe = r + "/organization/UcCompanyRelation/pageList"
<a name="5718-1726880820420"> , pe = r + "/organization/UcCompanyRelation/deleteById"
, de = r + "/organization/UcCompanyRelation/updateRelationStatus"
<a name="8385-1726880820420"> , me = r + "/organization/UcCompanyRelation/getCompanyList"
, he = r + "/organization/UcCompanyRelation/save"
<a name="4081-1726880820420"> , ge = r + "/staff/UcMerchantUser/getAllNoAuthenticationUser"
, be = r + "/staff/UcMerchantUser/authenticationUser"
<a name="2373-1726880820420"> , ye = r + "/release/PcReleaseConfig/pageList"
, ve = r + "/release/PcReleaseConfig/save"
<a name="9825-1726880820420"> , xe = r + "/release/PcReleaseConfig/getById"
, we = r + "/release/PcReleaseConfig/update"
<a name="3862-1726880820420"> , Oe = r + "/release/PcReleaseConfig/getByCode"
, je = r + "/staff/UcOrganization/getPageCompany"
<a name="4340-1726880820420"> , _e = r + "/staff/UcMerchantApp/getAppAndAppResourceByCompanyId"
, Ce = r + "/staff/UcMerchantApp/addOrEditAppAndAppResource"
<a name="3380-1726880971573">
还有
<a name="7030-1726880974660"> var r = "/zzwwxx-spm-staff-center/api/v1"
, o = "/zzwwxx-spm-contract-center/api/v1"</b>
<a name="2447-1726880975084"> , c = r + "/organization/getOrganizationTree"
, l = r + "/user/pageList"
<a name="6070-1726880975084"> , f = r + "/user/getById"
, d = r + "/user/changeWork"
<a name="7864-1726880975084"> , m = o + "/Contract/projectManagerList"
, h = o + "/workflow/pageList"
<a name="2997-1726880975084"> , y = o + "/workflow/getById"
, v = o + "/workflowDetail/getByWorkflowId"
<a name="3570-1726880975084"> , x = o + "/workflowDetail/getWorkflowNode"
, w = o + "/workflowDetail/save"
<a name="8037-1726880975084"> , O = {
submitTask: o + "/workflow/submitTask",
<a name="1639-1726880975084"> cancelTask: o + "/workflow/cancelTask",
approvalTask: o + "/workflow/approvalTask",
<a name="5294-1726880975084"> getWorkflowProcess: o + "/workflow/getWorkflowProcess",
auditPageList: o + "/Contract/auditPageList",
<a name="2844-1726880975084"> getAuditDetail: o + "/Contract/getAuditDetail",
rejectTask: o + "/workflow/rejectTask"
<a name="8541-1726880975085"> }
, j = {
<a name="9260-1726880975085"> auditPageList: o + "/Contract/discard/auditPageList",
approvalTask: o + "/workflow/discard/approvalTask",
<a name="2553-1726880975085"> rejectTask: o + "/workflow/discard/rejectTask",
getAuditDetail: o + "/Contract/discard/getAuditDetail"
<a name="7324-1726880975085"> }
, template = {
<a name="9644-1726880975085"> templatePageList: o + "/Template/pageList",
templateSave: o + "/Template/save",
<a name="5819-1726880975085"> templateGetById: o + "/Template/getById",
templateUpdate: o + "/Template/update",
<a name="8885-1726880975085"> templateDeleteById: o + "/Template/deleteById"
}
<a name="5210-1726880975085"> , _ = {
loginByCode: r + "/login/loginByCode",
<a name="8194-1726880975085"> loginOut: r + "/login/loginOut"
}
<a name="2052-1726880975085"> , C = {
getById: r + "/enterprise/getById",
<a name="7012-1726880975085"> pageList: r + "/enterprise/pageList",
update: r + "/enterprise/update",
<a name="3881-1726880975085"> selectPrincipal: r + "/user/selectPrincipal"
}
<a name="0056-1726880975085"> , menu = {
getMenuTree: r + "/menu/getMenuTree",
<a name="9041-1726880975085"> save: r + "/menu/save",
getResource: r + "/user/getResource"
<a name="3341-1726880975085"> }
, P = {
<a name="4047-1726880975085"> pageList: r + "/role/pageList",
getById: r + "/role/getById",
<a name="9374-1726880975085"> save: r + "/role/save",
update: r + "/role/update",
<a name="1660-1726880975085"> updateStatus: r + "/role/updateStatus",
getRoleFunctionAuth: r + "/roleAuth/getRoleFunctionAuth",
<a name="1112-1726880975085"> saveRoleAuth: r + "/roleAuth/saveRoleAuth",
getRoleServicerAuth: r + "/roleAuth/getRoleServicerAuth",
<a name="4275-1726880975085"> getRoleContractAuth: r + "/roleAuth/getRoleContractAuth",
getRoleUserAuth: r + "/roleAuth/getRoleUserAuth",
<a name="7760-1726880975085"> getRoleAuth: r + "/roleAuth/getRoleAuth"
}
<a name="1361-1726880975085"> , k = {
getWarning: r + "/Warning/getWarning",
<a name="7315-1726880975085"> updateWarning: r + "/Warning/updateWarning"
}
<a name="9012-1726880975085"> , $ = {
pageList: r + "/Log/pageList"
<a name="6453-1726880975085"> }
, S = {
<a name="7337-1726880975085"> getModuleSetting: r + "/headerSetting/getModuleSetting",
save: r + "/headerSetting/save"
<a name="5645-1726880975085"> }
测试请求袒露的业务应用HTTP接口
https://xxxxwww.cn/zzwwxx-spm-staff-center/api/v1/organization/getOrganizationTree
{ "payload": null, "code": "402", "msg": "登录已过期,请重新登录", "traceId": "43f1a5334faa44d9a0255feae1462e63.63.17268809549648079" }
<a name="9129-1726881395883">
projectManagerList另一个匿名访问接口
<a name="2170-1726881507436">POST https://xxxxwww.cn/zzwwxx-spm-contract-center/api/v1/Contract/projectManagerList HTTP/1.1
User-Agent: Fiddler
<a name="9135-1726881507864">Host: xxxxwww.cn
Content-Length: 10
<a name="1052-1726881507864">Content-Type: application/json
{"page":1}
<a name="8020-1726881507864">
HTTP/1.1 200
<a name="5436-1726881507864">Date: Sat, 21 Sep 2024 01:17:52 GMT
Content-Type: application/json;charset=UTF-8
<a name="8059-1726881507864">Connection: keep-alive
Set-Cookie: acw_tc=0bca392617268814720164728e2b83ce39ee73e6c768f889aef017c5aabe3f;path=/;HttpOnly;Max-Age=1800
<a name="7141-1726881507864">Content-Length: 135
{"payload":null,"code":"402","msg":"登录已过期,请重新登录","traceId":"673122c0467f45df90a059355f0662e0.87.17268814720307663"}
<a name="1132-1726881856140">
短信接口
POST https://xxxxwww.cn.com/sms/send HTTP/1.1
<a name="3124-1726881860276">Host: xxxxwww.cn.com
Connection: keep-alive
<a name="4016-1726881860276">Content-Length: 50
sec-ch-ua: "Chromium";v="128", "Not;A=Brand";v="24", "Google Chrome";v="128"
<a name="8935-1726881860276">sec-ch-ua-platform: "Windows"
x-requested-with: XMLHttpRequest
<a name="9064-1726881860276">sec-ch-ua-mobile: ?0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36
<a name="8285-1726881860276">X-Frame-Options: SAMEORIGIN
Content-Type: application/x-www-form-urlencoded;charset=UTF-8
<a name="9630-1726881860276">Accept: */*
Origin: https://xxxxwww.cn.com
<a name="7349-1726881860276">Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: cors
<a name="4554-1726881860276">Sec-Fetch-Dest: empty
Referer: https://xxxxwww.cn.com/
<a name="4049-1726881860276">Accept-Encoding: gzip, deflate, br, zstd
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
<a name="8768-1726881860276">Cookie: acw_tc=0b3c7d8e17268817596242609ebb29dc4d988a18b059d231b7a9a52694089d; portal=ca4b5e6a-6b9e-4a01-aceb-0cae909de7e6; mdcRequestId=80c6fac676cf41a399d2bb5dda73d61a
kind=0&option=0&verifyCode=l7gs&mobile=13888888888
<a name="5886-1726881860787">
HTTP/1.1 200
<a name="9870-1726881869417">Date: Sat, 21 Sep 2024 01:23:34 GMT
Content-Type: application/json;charset=UTF-8
<a name="8035-1726881869417">Connection: keep-alive
Set-Cookie: mdcRequestId=29145115e6954b0e8ee79262e7e0c580; Max-Age=1800; Expires=Sat, 21-Sep-2024 01:53:34 GMT; Path=/; Secure; HttpOnly
<a name="5733-1726881869417">X-XSS-Protection: 1; mode=block
Strict-Transport-Security: max-age=15724800
<a name="1627-1726881869417">X-Frame-Options: SAMEORIGIN
Content-Length: 75
<a name="6866-1726881869417">
{"code":"1","msg":"短信发送成功","data":"13888888888","success":true}
<a name="3370-1726881499115">
AI辅助分析安全漏洞
Swagger组件袒露
https://xxxxwww.cn/zzwwxx-spm-staff-center/swagger-ui.html
版本信息袒露
服务端是Springboot引用 Springfox 2.9.2版本信息
https://springfox.github.io/springfox/docs/2.9.2/
https://mvnrepository.com/artifact/io.springfox/springfox-swagger2/2.9.2
分析其应用依靠
io.springfox
springfox-swagger2
2.9.2
AI辅助分析
安全漏洞io.springfox:springfox-swagger-ui@2.9.2 vulnerabilities
https://security.snyk.io/package/maven/io.springfox:springfox-swagger-ui/2.9.2
CVE-2019-17495
https://nvd.nist.gov/vuln/detail/CVE-2019-17495
https://github.com/advisories/GHSA-c427-hjc3-wrfw
https://avd.aliyun.com/detail?id=AVD-2019-17495
https://github.com/swagger-api/swagger-codegen/issues/11964
AI协助编写检测脚本
Python版本
JAVA版
省市区数据字典接口
https://xxxxwww.cn/zzwwxx-spm-servicer-center/api/v1/Dictionaries/getAreaListByLevel?_=1727252796423&level=1
AI协助响应体分析
总结
利用AI辅助分析HTTP请求响应报文,并反馈安全漏洞检测与修复建议,具有紧张的意义。
1. 提高检测效率
传统的安全检测通常依靠于手动测试或使用固定的工具集。手动测试耗时耗力,而固定工具集可能无法覆盖全部范例的漏洞。AI可以快速处理大量的HTTP请求响应报文,并从中识别出潜在的安全问题,显著提高检测效率。
示例:AI可以实时分析数百甚至数千个请求响应报文,敏捷找出此中的异常模式或可疑行为。
2. 提升检测正确性
AI可以利用呆板学习模子和天然语言处理技术来识别复杂的模式和异常行为,从而提高检测的正确性。相比传统的基于规则的方法,AI可以更好地顺应不断变革的攻击手段。
示例:AI可以识别出SQL注入、XSS攻击、CSRF攻击等多种复杂的安全漏洞,即使是那些难以通过静态规则检测的漏洞。
3. 自动化漏洞分类与优先级排序
AI可以根据漏洞的严重水平和影响范围自动对漏洞进行分类,并按优先级排序。如许可以确保安全团队首先处理最紧急的问题。
示例:AI可以自动识别出哪些漏洞可能导致数据泄露、哪些漏洞可能导致系统瓦解,并据此进行优先级排序。
4. 提供定制化的修复建议
AI可以根据检测到的漏洞提供定制化的修复建议,帮助开发者快速办理问题。这对于不具备安全专业知识的开发人员尤其紧张。
示例:AI可以建议怎样修改代码以防止SQL注入,或者怎样配置Web服务器以防止XSS攻击。
5. 实时监测与动态防御
AI可以实实际时监测,并在检测到潜在威胁时立即采取行动。如许可以实时阻止攻击的发生,而不是等到事后才进行处理。
示例:当AI检测到异常请求时,它可以自动触发防御机制,如阻断恶意IP地点或增加认证要求。
6. 学习与自我改进
AI系统可以通过持续学习来不断提升自身的检测能力和正确率。随着新漏洞的出现,AI可以不断更新其模子,保持最新的防护能力。
示例:AI可以通过分析汗青数据和最新的安全研究,不断优化其检测算法和模子。
7. 降低误报率
传统的安全检测工具可能会产生较高的误报率,这会浪费大量的人力物力去验证这些误报。AI可以通过学习和智能分析,降低误报率,提高检测的有效性。 示例:AI可以区分正常的用户行为和恶意攻击行为,从而减少误报的情况。
8. 培训与教育
AI还可以作为培训工具,帮助开发人员和安全团队理解常见的安全漏洞及其防范措施。通过分析真实的请求响应报文,可以提供生动的案例讲授。
示例:AI可以天生详细的漏洞分析报告,并附带详细的解释和案例,帮助团队成员更好地理解安全问题。
9. 促进合规性
AI可以确保系统遵守各种安全标准和法规要求,如GDPR、HIPAA等。这对于需要满足特定行业标准的企业尤为紧张。
示例:AI可以检查系统是否符合特定的安全标准,并提供合规性的报告。
10. 降低成本
通过提高检测效率和正确性,减少误报,并提供自动化的修复建议,AI可以显著降低企业在安全管理方面的成本。
示例:AI可以减少人工测试的时间和人力成本,同时减少因安全问题导致的停机时间和经济损失。
利用AI辅助分析HTTP请求响应报文,并反馈安全漏洞检测与修复建议,不仅可以提高检测的效率和正确性,还可以提供定制化的修复建议,实实际时监测与动态防御,并且通过持续学习不断提升自身的防护能力。别的,AI还可以帮助降低误报率,促进合规性,降低安全管理的成本。这些意义使得AI在Web安全领域发挥着越来越紧张的作用。
今天先到这儿,希望对云原生,技术领导力, 企业管理,系统架构设计与评估,团队管理, 项目管理, 产品管理,信息安全,团队建立 有参考作用 , 您可能感兴趣的文章:
构建创业公司突击小团队
国际化环境下系统架构演化
微服务架构设计
视频直播平台的系统架构演化
微服务与Docker介绍
Docker与CI持续集成/CD
互联网电商购物车架构演变案例
互联网业务场景下消息队列架构
互联网高效研发团队管理演进之一
消息系统架构设计演进
互联网电商搜索架构演化之一
企业信息化与软件工程的迷思
企业项目化管理介绍
软件项目成功之要素
人际沟透风格介绍一
精益IT构造与分享式领导
学习型构造与企业
企业创新文化与等级观念
构造目标与个人目标
初创公司人才招聘与管理
人才公司环境与企业文化
企业文化、团队文化与知识共享
高效能的团队建立
项目管理沟通计划
构建高效的研发与自动化运维
某大型电商云平台实践
互联网数据库架构设计思路
IT基础架构规划方案一(网络系统规划)
餐饮行业办理方案之客户分析流程
餐饮行业办理方案之采购战略制定与实施流程
餐饮行业办理方案之业务设计流程
供应链需求调研CheckList
企业应用之性能实时度量系统演变 如有想了解更多软件设计与架构, 系统IT,企业信息化, 团队管理 资讯,请关注我的微信订阅号:
作者:Petter Liu
出处:http://www.cnblogs.com/wintersun/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 该文章也同时发布在我的独立博客中-Petter Liu Blog。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |