查找源代码里的安全漏洞
一般对代码的安全测试都是与一个应用程序进行交互,通过设计输入及观察相应内容两个步骤进行。
但通过审查源码,可以更有效的查出应用程序的问题
1、代码的审查方法
黑盒 及 白盒
黑盒是通过设计输入,监控输出,不了解内部工作机制
白盒需要分析应用程序的内部运作,查阅设计文档,源代码等资料可以更有效的查找出问题。
任何强大的项目都会包含成千上万的代码,所以进行代码审查是一件比较耗时的工作,根据经验,一般我们在审查代码的时候
需要分为以下三种方法
a、从进入点开始跟踪用户向应用程序提交的数据,审查负责处理这些数据的代码
b、在代码中搜索表示存在常见漏洞的签名,并审查这些签名,确定某个漏洞的真实存在
c、对内在危险的代码进行逐行审查,理解逻辑,并确定存在的问题
常见的漏洞签名:
a、跨站点脚本
用户获得的html中,一部分内容是用户可控制的数据,这时候如果某个链接是直接从请求查询的字符串中直接提取的字符串,这时候就会存在跨站点漏洞的危险
b、sql注入
就是简单的sql拼接。
在代码中查询所有sql操作的地方
c、路径遍历
用户的输入未经任何输入确认,或者核实,被传送到一个文件系统api, 这就是路径遍历漏洞的常见签名。 对于允许用户上传下载文件的应用程序功能要进行仔细审查。
d、任意重定向
通过源代码中的签名,可轻易确定各种钓鱼攻击向量
httpresponse.redirect(...) 当重定向中的内容获取的是用户直接输入的内容,未进行任何的处理,就会存在任意定向的问题
代码审核方法大多要求阅读源文件,并从中搜索表示获取用户输入及使用潜在危险的api的模式,为了进行有效的代码审查,最好有一款工具协助,这样效率更高。
source insight
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
2016-01-07 jmeter解决不同线程组之间传递参数问题