代码安全审计经验集(上)

本文描述了如何通过fuzz方法绕过WAF,利用SQL注入、弱口令、参数变化、Authorization滥用以及命令注入漏洞进行攻击,包括绕过SQL版本检查、利用开源项目中的弱口令、针对权限控制系统的漏洞和在线安装功能的命令注入技巧。

通过fuzz方式绕WAF

在目标系统发现一处SQL注入漏洞,但前置了一个某大厂的WAF,通常的套路是内联注释、编码、参数污染、分块传输等等,但方法都尝试了一遍之后,还是突破不了WAF。

图片

最后,绕过的技巧是插入了一个"\", 通常select version\()无法在数据库中执行,但是在这个应用中,插入"\"能绕过WAF执行SQSL,select version\()会被WAF认为该语句不能执行遂被放行,之后可能是网关把请求中的转义符号剔除,导致select version\()又变成select version()。

图片

开源软件自带的弱口令

不少用户在自己安装部署开源项目的时候,难免遇到各种环境适配、缺少依赖的问题。为了方便用户体验产品,有的开源项目会提供线上体验环境,但有时这些用于演示的测试账号可能会因为版本控制问题被带到生产环境。

图片

对于这类项目,不妨去项目源码看SQL文件中是否有体验环境的账号口令,如果有,那么用户部署后就会把这个弱口令账号带到自己正式环境中。用户部署后admin的账号一般会被修改为强口令,但是demo账户却容易被遗忘,实际测试发现,互联网上80%的该系统可以用这个demo账户的弱口令登录。

图片

利用参数变化绕过权限控制

对于使用了AOP、Shiro做了鉴权的服务,仍然有被绕过的可能,有时候是安全和业务功能冲突,有时候是鉴权不严格,比如下面的案例:

一个SpringBoot的服务由管理员创建更新,使用了AOP对接口鉴权,且要同时校验两个DePermission,pid对应的DePermission配置的level属性值是5,普通用户的level是1,小于这个level,也就是说,普通用户没有权限调用update方法。

图片

再看AOP中的鉴权代码,如果传入的AOP属性为空,则直接返回true

图片

于是,使用level小于5的普通用户去调用该接口,只传入id指定的应用,不传入pid,pid对应的对象就会为空,即可绕过权限校验更新该应用。

因此,在安全测试中,某些高权限接口的调用可以尝试删除某些参数再去调用,说不定会发现类似的越权问题。

图片

利用Authorization滥用添加管理员账户

一次测试项目中,系统只分配了普通用户账号,需要对用户系统和管理后台做测试,先输入任意账号密码登录管理后台。

图片

登录请求如下:

图片

查看系统提供的接口,发现其中包含一个新增用户接口:

图片

直接调用该接口会提示未授权:

图片

于是先登录上述的用户账户,获取一个普通用户账号的Authorization(JWT凭证):

图片

将这个Authorization添加到上述管理后台的添加用户的接口sys/user/add 的请求头中,即可以成功添加管理员账户。

这里的后台代码应该只是校验了Authorization的JWT是否不为null且没过期,满足条件就会调用sys/user/add接口并执行新增用户操作,但并未校验这个Authorization的用户身份。

图片

之后用该账号便可以成功登录管理后台。

图片

在线安装功能的命令注入漏洞

对于在线安装与卸载这类的功能,如下图所示:

图片

后台实现可能是调用系统中的wget或者curl命令去指定URL下载安装包。

图片

于是通过可控的URL拼接命令即可实现命令注入:

图片

图片

作者:RoShine

2024年1月29日 

洞源实验室 

内容概要:本文介绍了一个基于多传感器融合的定位系统设计方案,采用GPS、里程计和电子罗盘作为定位传感器,利用扩展卡尔曼滤波(EKF)算法对多源传感器数据进行融合处理,最终输出目标的滤波后位置信息,并提供了完整的Matlab代码实现。该方法有效提升了定位精度与稳定性,尤其适用于存在单一传感器误差或信号丢失的复杂环境,如自动驾驶、移动采用GPS、里程计和电子罗盘作为定位传感器,EKF作为多传感器的融合算法,最终输出目标的滤波位置(Matlab代码实现)机器人导航等领域。文中详细阐述了各传感器的数据建模方式、状态转移与观测方程构建,以及EKF算法的具体实现步骤,具有较强的工程实践价值。; 适合人群:具备一定Matlab编程基础,熟悉传感器原理和滤波算法的高校研究生、科研人员及从事自动驾驶、机器人导航等相关领域的工程技术人员。; 使用场景及目标:①学习和掌握多传感器融合的基本理论与实现方法;②应用于移动机器人、无人车、无人机等系统的高精度定位与导航开发;③作为EKF算法在实际工程中应用的教学案例或项目参考; 阅读建议:建议读者结合Matlab代码逐行理解算法实现过程,重点关注状态预测与观测更新模块的设计逻辑,可尝试引入真实传感器数据或仿真噪声环境以验证算法鲁棒性,并进一步拓展至UKF、PF等更高级滤波算法的研究与对比。
内容概要:文章围绕智能汽车新一代传感器的发展趋势,重点阐述了BEV(鸟瞰图视角)端到端感知融合架构如何成为智能驾驶感知系统的新范式。传统后融合与前融合方案因信息丢失或算力需求过高难以满足高阶智驾需求,而基于Transformer的BEV融合方案通过统一坐标系下的多源传感器特征融合,在保证感知精度的同时兼顾算力可行性,显著提升复杂场景下的鲁棒性与系统可靠性。此外,文章指出BEV模型落地面临大算力依赖与高数据成本的挑战,提出“数据采-模型训练-算法迭代-数据反哺”的高效数据闭环体系,通过自动化标注与长尾数据反馈实现算法持续进化,降低对人工标注的依赖,提升数据利用效率。典型企业案例进一步验证了该路径的技术可行性与经济价值。; 适合人群:从事汽车电子、智能驾驶感知算法研发的工程师,以及关注自动驾驶技术趋势的产品经理和技术管理者;具备一定自动驾驶基础知识,希望深入了解BEV架构与数据闭环机制的专业人士。; 使用场景及目标:①理解BEV+Transformer为何成为当前感知融合的主流技术路线;②掌握数据闭环在BEV模型迭代中的关键作用及其工程实现逻辑;③为智能驾驶系统架构设计、传感器选型与算法优化提供决策参考; 阅读建议:本文侧重技术趋势分析与系统级思考,建议结合实际项目背景阅读,重点关注BEV融合逻辑与数据闭环构建方法,并可延伸研究相关企业在舱泊一体等场景的应用实践。
### 代码安全审计方法 代码安全审计涉及多个方面的工作流程和技术手段,旨在识别和修复软件中的安全隐患。一种常见的做法是从定义明确的安全策略出发,确保所有参与人员都理解并遵循既定的标准和指南[^1]。 对于具体的审计工作而言,采用自动化工具辅助人工审查是一种高效的方式。这类工具能够在大规模项目中迅速定位潜在的风险点,减轻开发者负担的同时提高了工作效率。例如,Betterscan作为一款先进的代码安全编排与审计解决方案,不仅支持多种编程语言下的源码扫描功能,还提供了详细的报告生成功能来帮助团队更好地理解和处理发现的问题。 另外,在实施过程中引入人工智能技术也逐渐成为趋势之一。借助于机器学习算法的支持,AI静态代码审计平台可以在更短时间内完成复杂逻辑的理解以及深层次缺陷的挖掘,从而进一步增强了安全性保障措施的效果[^2]。 ### 使用的工具 在选择适合自己的代码安全审计工具时,可以根据实际需求考虑以下几个选项: - **Betterscan**:这是一款专注于代码安全性的多功能工具,适用于不同类型的开发环境。除了基本的语法检查外,还能深入到业务层面进行威胁建模分析,提供全面而细致的结果反馈。 - AI驱动型静态分析器:利用最新的自然语言处理技术和模式匹配机制,此类产品特别擅长捕捉那些难以被传统方式察觉的新颖攻击向量或隐蔽漏洞。它们通常具备良好的扩展性和自适应能力,随着新威胁情报不断更新迭代其检测模型。 此外还有专门面向特定脚本语言设计的专业化工具可供选用,比如用于Perl程序的质量评估就有相应的专用套件存在,可以帮助维护者及时掌握现有资产状况并采取相应改进措施[^3]。 ```perl use strict; use warnings; sub analyze_code { my ($file_path) = @_; open(my $fh, '<', $file_path) or die "Could not open '$file_path' $!"; while (my $line = <$fh>) { chomp($line); # 这里可以加入具体规则实现对每一行代码的合规性验证 } close($fh); } ``` 此段伪代码展示了如何构建一个简单的文件读取循环框架,可用于遍历待审阅的目标文档合,并在此基础上成更多定制化的检验逻辑。 ### 最佳实践建议 为了使代码安全审计达到理想效果,应当注重以下几点原则: - 定期开展培训活动,提高全员信息安全意识; - 建立健全内部管理制度,明确规定各项操作规程; - 积极采纳新兴科技成果,持续优化现有的防护体系; - 加强跨部门协作沟通,形成合力共同应对挑战; - 对每一次审核结果认真总结经验教训,推动整体水平稳步上升; 通过上述多管齐下式的努力方向指引,相信任何组织都能够建立起一套科学合理的代码安全保障机制,进而为用户提供更加可靠的产品和服务体验。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值