XX信息系统弱口令下渗透过程与解决方案


背景

       笔者在负责信息系统安全过程中,简单实施WEB系统渗透测试过程。常见场景问题:

1. 弱口令

     在网络安全中,弱口令(weak password)指的是那些容易被他人猜测到或被破解工具轻易破解的密码。这些密码通常缺乏足够的复杂性和安全性,无法有效保护用户的账户和数据安全。在OWASP中属于A07:2021 – Identification and Authentication Failures

以下是对弱口令的详细解释:弱口令没有严格和准确的定义,但通常认为仅包含简单数字和字母组合的口令,如“123”、“abc”、“123456”等,以及那些与用户个人信息高度相关的口令(如生日、名字拼音等),都属于弱口令范畴。

弱口令通常具有以下特点:

  1. 简单性:口令长度短,结构简单,仅包含数字、字母或它们的简单组合。
  2. 可预测性:口令与个人信息高度相关,如生日、名字、常用词汇等,容易被他人猜测。
  3. 普遍性:一些常见的、易于记忆的口令被广泛使用,增加了被破解的风险。

弱口令一旦被破解,将使用户面临严重的安全风险,包括:

  1. 个人信息泄露:攻击者可能获取用户的敏感信息,如身份证号、银行卡号等。
  2. 财务损失:攻击者可能利用破解的账户进行非法交易,导致用户财务损失。
  3. 隐私侵犯:攻击者可能窥探用户的私人通信、浏览记录等隐私信息。

2、越权访问安全漏洞

越权访问安全漏洞(Broken Access Control,简称BAC)是Web应用程序中一种常见的安全漏洞,由于其存在范围广、危害大,被OWASP列为Web应用十大安全隐患的第一名。该漏洞指的是应用在检查授权时存在纰漏,使得攻击者在获得低权限用户账户后,能够利用一些方式绕过权限检查,访问或操作其他用户的数据或执行更高权限的操作。

越权访问安全漏洞的分类
水平越权访问:
定义:一种“基于数据的访问控制”设计缺陷引起的漏洞。由于服务器端在接收到请求数据进行操作时没有判断数据的所属人或所属部门,导致攻击者能够访问或操作同级别其他用户的数据。
实例:在一个在线论坛中,普通用户A通过修改URL中的用户ID参数,成功访问了同级别用户B的帖子。


垂直越权访问:
定义:一种“基于URL的访问控制”设计缺陷引起的漏洞,又称为权限提升攻击。攻击者能够利用漏洞进行更高级别的访问或控制其他用户的数据。
实例:在一个电子商务网站中,普通用户通过某种方式获得了管理员权限,进而访问了敏感的管理员数据或执行了高级管理操作。


渗透过程

1. 通过猜测用户名test/弱口令123456

进行登录认证

image

成功进入到首页

image

看上去缺少部分数据权限,可以进一步分析

2. 信息暴露


image

Request URL: https://XXX.cn/device_test/s3storage/getC2S3Url
Request Method: GET
Status Code: 200
Referrer Policy: strict-origin-when-cross-origin


响应体返回
previewFile/


我们得知URL https://XXXX.cn/device_test/previewFile/

进一步访问,发现系统是基于Springboot应用,使用了Minio文件存储

image

3. 通过分析系统请求URL,逐个分析各个接口请求与入参

image

再访问 https://xxxx.cn/device_test/ws/getSubject

返回当前登录人信息与access token

{"categoryIds":null,"orgInstanceIds":null,"orgIds":["8d21dab45da443af9c2ee52ece8411b7","FIbPekkmQI63swaiarxtnyQ"],"roles":["default","lcglz"],"appid":"Rx_Nr3nkSb-H1XfFjYAA9g","name":"test","id":"vVqNnBaoTaqYicGuoicznnrA","accessToken":"eyJraWQiOiJ3Y1d5MWtyX1RQLUx2amY2N29HWVBnIiwidHlwIjoiSldUIiwiYWxnIjoiUlMyNTYifQ.eyJ1aWQiOiJ2VnFObkJhb1RhcVlpY0d1b2ljem5uckEiLCJhYyI6InRlc3QiLCJpc3MiOiJjMiIsInVuIjoi5rWL6K-V6LSm5Y-3Iiwib2lkIjpbIjhkMjFkYWI0NWRhNDQzYWY5YzJlZTUyZWNlODQxMWI3IiwiRkliUGVra21RSTYzc3dhaWFyeHRueVEiXSwiZXhwIjoxNzA3Mzg4OTM0LCJhaWQiOiJSeF9OcjNua1NiLUgxWGZGallBQTlnIiwicm8iOlsiZGVmYXVsdCIsImxjZ2x6Il0sImlhdCI6MTcwNjc4NDEzNH0.TdDcSfuI5-LicNowvilPJriVBOEeoxiRbgNp7VqjnjySvh-wbiQvUKWeF1J4dW1Y8q8k9BFOsI4aCRCsxrMxv19Sy49fpG3ECE6lretGz6ieiEvFr9p1GfgNxoxthEhP9HRL_z0PE94zkK6Az490ODE6fti4t5z-cEpo9GjhB4s","userId":"vVqNnBaoTaqYicGuoicznnrA","realname":"测试账号"}

文件上传接⼝信息泄露


POST https://xxxx.cn/device_test/excel/upload

HTTP/1.1
Content-Type: multipart/form-data; boundary=-------------------------acebdf13572468
User-Agent: Fiddler
Cookie: device_testRx_Nr3nkSb-
H1XfFjYAA9g_C2AT=eyJraWQiOiJwVXJkRGVpWlJYcUFsMDVKMWdybzZRIiwidHlwIjoiSldUIiwiYWxnIjoiUlMyNTYifQ.eyJ1aWQiOiJ2VnFObkJhb1
RhcVlpY0d1b2ljem5uckEiLCJhYyI6InRlc3QiLCJpc3MiOiJjMiIsInVuIjoi5rWL6K-V6LSm5Y3Iiwib2lkIjpbIjhkMjFkYWI0NWRhNDQzYWY5YzJlZTUyZWNlODQxMWI3IiwiRkliUGVra21RSTYzc3dhaWFyeHRueVEiXSwiZXhwIjoxNzA3Nzg3
NzU0LCJhaWQiOiJSeF9OcjNua1NiLUgxWGZGallBQTlnIiwicm8iOlsiZGVmYXVsdCIsImxjZ2x6Il0sImlhdCI6MTcwNzE4Mjk1NH0.nwQsCaerUXqsHIW0ARspjbRZqhky2_
r-p2Pn-pI2jW83LP3Z0UnqUxgkH2h4nxIcyY3N5RJP_QkqGD3BDYwIRMZHW8hhrZ6Uu0AJcE8Oglfvudi6ETB6DNYp2HhKtVtY13Cvum9hF8kfF_
AJ0UvI-2FEdThxeG_ILw9ui_268; device_testRx_Nr3nkSb-
H1XfFjYAA9g_C2RT=9f30054cce608b9aaaaf3c897b8ba552; JSESSIONID=7dd3aaaf-9aef-4e71-a81a-c9d02269a787
Content-Length: 19256
---------------------------acebdf13572468
Content-Disposition: form-data; name="file"; filename="重点监测县市导⼊模板.xlsx"
Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
HTTP/1.1 500
Server: nginx
Date: Tue, 06 Feb 2024 01:51:16 GMT
Content-Type: application/json
Content-Length: 164
{"timestamp":1707184276967,"status":500,"error":"Internal Server Error","message":"java.lang.NullPointerException: Name is
null","path":"/device_test/excel/upload"}


已成功获取文件上传后URL


POST https://xxxx.cn/device_test/s3storage/uploads/files

HTTP/1.1
Content-Type: multipart/form-data; boundary=-------------------------acebdf13572468
User-Agent: Fiddler
Cookie: device_testRx_Nr3nkSb-
H1XfFjYAA9g_C2AT=eyJraWQiOiJwVXJkRGVpWlJYcUFsMDVKMWdybzZRIiwidHlwIjoiSldUIiwiYWxnIjoiUlMyNTYifQ.eyJ1aWQiOiJ2VnFObkJhb1
RhcVlpY0d1b2ljem5uckEiLCJhYyI6InRlc3QiLCJpc3MiOiJjMiIsInVuIjoi5rWL6K-V6LSm5Y-
3Iiwib2lkIjpbIjhkMjFkYWI0NWRhNDQzYWY5YzJlZTUyZWNlODQxMWI3IiwiRkliUGVra21RSTYzc3dhaWFyeHRueVEiXSwiZXhwIjoxNzA3Nzg3
NzU0LCJhaWQiOiJSeF9OcjNua1NiLUgxWGZGallBQTlnIiwicm8iOlsiZGVmYXVsdCIsImxjZ2x6Il0sImlhdCI6MTcwNzE4Mjk1NH0.nwQsCaerUXqsHIW0ARspjbRZqhky2_
r-p2Pn-pI2jW83LP3Z0UnqUxgkH2h4nxIcyY3N5RJP_QkqGD3BDYwIRMZHW8hhrZ6Uu0AJcE8Oglfvudi6ETB6DNYp2HhKtVtY13Cvum9hF8kfF_
AJ0UvI-2FEdThxeG_ILw9ui_268; device_testRx_Nr3nkSb-
H1XfFjYAA9g_C2RT=9f30054cce608b9aaaaf3c897b8ba552; JSESSIONID=7dd3aaaf-9aef-4e71-a81a-c9d02269a787
Content-Length: 19256
---------------------------acebdf13572468
Content-Disposition: form-data; name="file"; filename="重点监测县市导⼊模板.xlsx"


HTTP/1.1 200
Server: nginx
Date: Tue, 06 Feb 2024 02:04:50 GMT
Content-Type: application/json;charset=UTF-8
Content-Length: 418
[{"digest":null,"fileid":"tmQjJLqlQCOVUP1Yyun0aQ","filesize":18990,"id":"tmQjJLqlQCOVUP1Yyun0aQ","mimetype":"application/vnd.ope
nxmlformats-officedocument.spreadsheetml.sheet","name":"重点监测县市导⼊模
板.xlsx","path":null,"serviceId":null,"url":"device_develop/2024-02-
06/1707185090469%24%24%E9%87%8D%E7%82%B9%E7%9B%91%E6%B5%8B%E5%8E%BF%E5%B8%82%E5%AF%BC%E5%85%A5%E
6%A8%A1%E6%9D%BF.xlsx","visitCount":null}]


HTTP/1.1 200
Server: nginx
Date: Tue, 06 Feb 2024 02:20:16 GMT
Content-Type: application/json;charset=UTF-8
Content-Length: 286
[{"digest":null,"fileid":"g8ycqNeLRiqoz2G9169liw","filesize":4995570,"id":"g8ycqNeLRiqoz2G9169liw","mimetype":"application/pdf","na
me":"1661909291339187230.pdf","path":null,"serviceId":null,"url":"device_develop/2024-02-
06/1707186016312%24%241661909291339187230.pdf","visitCount":null}]


用户姓名泄露


image

响应体
{"contents":[{"procinstid":"5069B7389B6C45BAA345700FE4DE1518","formkey":"","taskdefkey":"sid-B55B27AC-0258-4080-AC79-B65666A82442","taskstate":"todo","executionid":"5069B7389B6C45BAA345700FE4DE1518","candidate":["用户【xxxx】"],"deletereason":"","startUserId":"e33098a8d6564b52a30d8db9116bb41d","startUserName":"寸XXX","businesskey":"3nVBmjN_SGShnD8xqxQOHA","modulename":"XXXX-2024-01-29-发起计划停机审批流程","id":"722A3616DFBB4B6491530589425570FF","taskid":"F0548F4D4611439CA893F12DD474BD45","procdefid":"device_overhaul_stop:4:8B40557B2AF24A079A5E4CF841CE3B76","createtime":1706766538000,"priority":50,"revision":1,"appid":"fYy0yzdPQS2bw84KT1Hu1Q","name":"设备动力车间负责人","tenantId":"","taskTitle":"","category":"users","moduleid":"device_overhaul_stop","remark1":"同意"},{"procinstid":"15187F8CE8EB4F689DCA5C0FE201033A","formkey":"","taskdefkey":"sid-B55B27AC-0258-4080-AC79-B65666A82442","taskstate":"todo","executionid":"15187F8CE8EB4F689DCA5C0FE201033A","candidate":["用户【XXXX】"],"deletereason":"","startUserId":"e33098a8d6564b52a30d8db9116bb41d","startUserName":"寸XX","businesskey":"HG1aOZcQRJO2awsrd8Yf-w","modulename":"XXXXX-2024-02-01-发起计划停机审批流程","id":"4CE0E56F1B5C49E3A53657B4B534489D","taskid":"8228ADE71F2E4F9FB3EBA58DC6DF0752","procdefid":"device_overhaul_stop:4:8B40557B2AF24A079A5E4CF841CE3B76","createtime":1706765789000,"priority":50,"revision":1,"appid":"fYy0yzdPQS2bw84KT1Hu1Q","name":"设备动力车间负责人","tenantId":"","taskTitle":"","category":"users","moduleid":"device_overhaul_stop","remark1":"同意"}],"pageIndex":1,"pageSize":3,"total":2,"totalPage":1}

4.越权访问安全漏洞


所有用户手机号泄露,测试用例:普通账户应没有权限的访问未经授权的接口

http://IP或域名/ls/userlist/form/c2/userMain?page=1&rows=100&sidx=userRegdate+desc&sord=&cond=%7B%7D

image


通用接⼝暴露所有用户头像与手机号等敏感信息

https://xxxx/device_test/CustomUserOrg/getAllUsers

image


解决方案

一. 弱口令预防措施

为了避免弱口令带来的安全风险,用户应采取以下预防措施:

  1. 设置复杂口令:口令应至少包含8个字符,并混合使用英文大小写字母、数字和特殊符号。避免使用与个人信息相关的口令。
  2. 定期更换口令:建议用户定期更换口令,以降低长期使用同一口令被破解的风险。
  3. 启用多因素认证:在支持多因素认证的平台上启用该功能,增加账户的安全性。
  4. 不透露口令:不在不安全的场合透露口令,避免通过电子邮件、即时通讯工具等方式发送口令。

弱口令是网络安全中的一大隐患,用户应提高安全意识,采取有效措施保护自己的账户和数据安全。

二. 越权访问安全漏洞

为了有效防范越权访问安全漏洞,可以从以下几个方面入手:

  1. 加强权限控制
    • 对用户角色和权限进行细化和限制,确保不同用户只能访问其所需的最小化权限资源。
    • 实施强制访问控制策略,限制用户的操作范围和深度。
  2. 严格输入验证
    • 对所有用户输入进行严格的验证和过滤,确保输入数据的合法性和安全性。
    • 使用参数化查询和预编译语句等技术防止SQL注入等攻击行为。
  3. 会话管理
    • 采用强密码策略,限制密码的复杂性和长度。
    • 实施多因素身份认证机制,提高账户的安全性。
    • 定期更换会话令牌,缩短会话有效期,降低被攻击的风险。
  4. 错误处理与日志审计
    • 对错误处理进行细化和完善,确保异常或错误条件被正确处理和记录。
    • 实施严格的日志审计机制,对所有操作行为进行记录和监控,以便及时发现和追踪攻击行为。
  5. 安全编码规范
    • 在开发阶段就考虑安全性,通过代码审查确保代码的安全性。
    • 避免在代码中直接硬编码权限或角色,而是使用配置文件或数据库来管理权限。
  6. 安全框架和库的使用
    • 使用已经经过验证的安全框架和库来构建应用程序,这些框架和库通常包含了许多用于防范越权等安全漏洞的最佳实践。
  7. 安全教育和培训
    • 提高开发团队和运维团队的安全意识,让他们了解越权等安全漏洞的风险和防范措施。
    • 通过定期的安全教育和培训,提高团队的安全意识和技能水平。
三. MinIO信息泄露的安全风险与防止措施
安全风险
  1. 敏感信息泄露
    • MinIO的信息泄露漏洞(如CVE-2023-28432)可能导致存储的敏感数据(如MINIO_SECRET_KEY、MINIO_ROOT_PASSWORD等)被未经授权的用户获取。
    • 这些密钥和密码如果被恶意利用,攻击者可以轻易访问和控制系统,进一步获取更多敏感信息或执行恶意操作。
  2. 业务中断和数据损坏
    • 信息泄露可能引发连锁反应,如被攻击者用于发动拒绝服务攻击(DDoS),导致MinIO服务不可用,进而影响业务运行。
    • 攻击者还可能篡改或删除存储的数据,造成数据损坏或丢失。
防止措施
  1. 及时升级
    • 官方已发布修复漏洞的新版本,受影响用户应尽快将MinIO升级到安全版本(如RELEASE.2023-03-20T20-16-18Z及以后版本)。
    • 定期检查并应用所有安全更新和补丁,以确保系统的安全性。
  2. 加强访问控制
    • 配置严格的访问控制策略,确保只有授权用户才能访问MinIO服务。
    • 使用强密码策略,避免使用弱口令,并定期更换密码。
  3. 启用加密传输
    • 确保所有与MinIO的通信都通过HTTPS等加密协议进行,以防止数据在传输过程中被截获或篡改。
  4. 定期审计和监控
    • 定期对MinIO的访问日志进行审计,检查是否有异常访问行为。
    • 使用监控工具实时监控MinIO服务的运行状态和性能指标,及时发现并处理潜在的安全问题。
四. Spring Boot信息泄露的安全风险与防止措施
安全风险
  1. 源代码泄露
    • 如果Spring Boot项目的源代码管理不当,可能会被恶意用户获取,进而分析出系统的漏洞和敏感信息。
  2. 配置信息泄露
    • Spring Boot项目中的配置文件(如application.properties或application.yml)可能包含数据库密码、API密钥等敏感信息,如果这些文件被泄露,将带来严重的安全风险。
  3. 跨站脚本(XSS)和跨站请求伪造(CSRF)攻击
    • 如果Spring Boot项目未采取适当的安全措施,可能会受到XSS和CSRF等攻击,导致用户数据被窃取或篡改。
防止措施
  1. 代码混淆和加密
    • 使用Java代码混淆工具(如ProGuard、YGuard)对Spring Boot项目的源代码进行混淆处理,增加攻击者分析代码的难度。
    • 对敏感数据进行加密存储和传输,确保即使数据被泄露也无法被轻易解密。
  2. 安全配置
    • 确保Spring Boot项目的配置文件得到妥善管理,避免将敏感信息直接存储在代码库中。
    • 使用环境变量或外部配置文件来管理敏感信息,确保这些信息在部署时不会泄露。
  3. 集成Spring Security
    • 在Spring Boot项目中集成Spring Security框架,实现身份验证、授权、加密和审计等安全功能。
    • 配置合理的安全策略,如使用HTTPS、设置强密码策略、启用CSRF防护等。
  4. 定期安全审计和漏洞扫描
    • 定期对Spring Boot项目进行安全审计和漏洞扫描,及时发现并修复潜在的安全问题。
    • 关注安全社区和官方安全公告,及时获取最新的安全漏洞信息和修复建议。


参考

  1. 2011-2019年Top100弱口令密码字典 https://k8gege.org/p/16172.html
  2. OWASP Top 10 – 2021 https://owasp.org/Top10/



今天先到这儿,希望对云原生,技术领导力, 企业管理,系统架构设计与评估,团队管理, 项目管理, 产品管理,信息安全,团队建设 有参考作用 , 您可能感兴趣的文章:
构建创业公司突击小团队
国际化环境下系统架构演化
微服务架构设计
视频直播平台的系统架构演化
微服务与Docker介绍
Docker与CI持续集成/CD
互联网电商购物车架构演变案例
互联网业务场景下消息队列架构
互联网高效研发团队管理演进之一
消息系统架构设计演进
互联网电商搜索架构演化之一
企业信息化与软件工程的迷思
企业项目化管理介绍
软件项目成功之要素
人际沟通风格介绍一
精益IT组织与分享式领导
学习型组织与企业
企业创新文化与等级观念
组织目标与个人目标
初创公司人才招聘与管理
人才公司环境与企业文化
企业文化、团队文化与知识共享
高效能的团队建设
项目管理沟通计划
构建高效的研发与自动化运维
某大型电商云平台实践
互联网数据库架构设计思路
IT基础架构规划方案一(网络系统规划)
餐饮行业解决方案之客户分析流程
餐饮行业解决方案之采购战略制定与实施流程
餐饮行业解决方案之业务设计流程
供应链需求调研CheckList
企业应用之性能实时度量系统演变

如有想了解更多软件设计与架构, 系统IT,企业信息化, 团队管理 资讯,请关注我的微信订阅号:

image_thumb2_thumb_thumb_thumb_thumb[1]

作者:Petter Liu
出处:http://www.cnblogs.com/wintersun/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 该文章也同时发布在我的独立博客中-Petter Liu Blog。

posted on 2024-07-24 10:54  PetterLiu  阅读(186)  评论(0编辑  收藏  举报