百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术分类 > 正文

代码审计常见漏洞总结 源代码安全审计工具

ztj100 2024-12-26 17:44 9 浏览 0 评论

代码审计,属于白盒测试,审查代码检查是否有安全问题,核心就两点:跟踪用户输入数据+敏感函数参数回溯。

关键词查询

1. 密码硬编码(密码明文存储)——即将密码直接以明文的形式写在代码中,既不安全,也难以维护:password,pass,pwd,jdbc等

2. 反射型XSS——从用户那儿获取参数中的值,未经检查参数合法性的情况下,直接输出在js代码中,产生脚本攻击:getParameter,<%=,param等

3. 存储型XSS——指非法数据存入到数据库中,每次加载都会执行恶意代码产生攻击。为了检查代码是否有该漏洞,需从数据库的插入语句中回溯参数的来源,如果整个流程都没有对参数进行过滤,且没有全局过滤器,则判断存在存储型XSS:insert,save,update等

4. SQL注入——sql语句中出现+,append,$(),#等拼接字眼且没有配置SQL过滤文件,则存在sql漏洞。根本解决办法是预编译,也就是sql语句事先编译好了,随后传入参数填坑,不会重新再编译,也就不会有sql注入:select,update,delete,insert等

5. 任意文件下载——整个流程中没有对用户请求的文件名进行合法性检查,导致用户能够下载一些配置文件:fileName,filePath,getFile,getWriter等

6. 任意文件删除——同样也是没有对用户请求的参数进行过滤,导致输入参数拼接以能够删除重要文件:delete,deleteFile,fileName,filePath等

7. 任意文件上传——未过滤用户输入文件名,导致能够上传恶意可执行文件。需注意有没有配置文件上传白名单,是否有检查后缀名,配置文件是否设置了白名单或者黑名单:upload,write,fileName,filePath等

8. 命令注入——判断是否直接拼接外部传来的值:getRuntime,exec,cmd,shell等

9. 缓冲区溢出——直接拷贝或*,未考虑大小:strcpy,strcat,scanf,memcpy,memmove,memeccpy,Getc(),fgetc(),getchar,read,printf等

10. XML注入——在导入配置、数据传输接口等场景,留意XML解析器是否禁用外部实体:DocumentBuilder、XMLStreamReader、SAXBuilder、SAXParser、SAXReader 、XMLReader、SAXSource 、TransformerFactory 、SAXTransformerFactory 、SchemaFactory等

11. 日志记录敏感信息——由于日志文件保存位置有一定要求,一般不在考虑范围之内(不结合其他漏洞一起考虑的情况下):log.info,logger.info等

12. URL跳转——注意是否配置了url跳转白名单:sendRedirect,setHeader,forward等

13. 敏感信息泄露及错误处理——查看配置文件是否配置了统一错误页面,如果有则不存在此漏洞,如果没有则搜索定位看是否泄露敏感信息:Getmessage,exception等

14. 反序列化漏洞——当输入的反序列化的数据可被用户控制,那么攻击者即可通过构造恶意输入,让反序列化产生非预期的对象,在此过程中执行构造的任意代码:ObjectInputStream.readObject,ObjectInputStream.readUnshared,XMLDecoder.readObject,Yaml.load,XStream.fromXML,ObjectMapper.readValue,JSON.parseObject

15. 不安全组件暴露——通过查看配置文件 AndroidManifest.xml,查看属性有没有配置 false。

逻辑漏洞

1. CSRF(Cross Site Request Forgery, 跨站域请求伪造)——查看配置文件有没有配置csrf全局过滤器,如果没有则看每个操作前有没有添加token的防护机制。

2. SSRF(Server-Side Request Forgery:服务器端请求伪造)——查看用户可控输入链接有没有过滤机制。

3. 越权漏洞——重点关注用户操作请求时是否有对当前登陆用户权限做校验或者权限框架的配置文件以及实现方法。

4. 敏感数据弱加密——看数据传输中的加密方法,一般写在工具类util中。

5. 短信验证码——时间限制防止可爆破,次数限制防止对手机产生攻击,可否自定义防止发送不良信息。

相关推荐

Java项目宝塔搭建实战MES-Springboot开源MES智能制造系统源码

大家好啊,我是测评君,欢迎来到web测评。...

一个令人头秃的问题,Logback 日志级别设置竟然无效?

原文链接:https://mp.weixin.qq.com/s/EFvbFwetmXXA9ZGBGswUsQ原作者:小黑十一点半...

实战!SpringBoot + RabbitMQ死信队列实现超时关单

需求背景之为什么要有超时关单原因一:...

火了!阿里P8架构师编写堪称神级SpringBoot手册,GitHub星标99+

Springboot现在已成为企业面试中必备的知识点,以及企业应用的重要模块。今天小编给大家分享一份来着阿里P8架构师编写的...

Java本地搭建宝塔部署实战springboot仓库管理系统源码

大家好啊,我是测评君,欢迎来到web测评。...

工具尝鲜(1)-Fleet构建运行一个Springboot入门Web项目

Fleet是JetBrains公司推出的轻量级编辑器,对标VSCode。该款产品还在公测当中,具体下载链接如下JetBrainsFleet:由JetBrains打造的下一代IDE。想要尝试的...

SPRINGBOOT WEB 实现文件夹上传(保留目录结构)

网上搜到的SpringBoot的代码不多,完整的不多,能用的也不多,基本上大部分的文章只是提供了少量的代码,讲一下思路,或者实现方案。之前一般的做法都是使用HTML5来做的,大部都是传文件的,传文件夹...

Java项目本地部署宝塔搭建实战报修小程序springboot版系统源码

大家好啊,我是测评君,欢迎来到web测评。...

新年IT界大笑料“工行取得基于SpringBoot的web系统后端实现专利

先看看专利描述...

看完SpringBoot源码后,整个人都精神了

前言当读完SpringBoot源码后,被Spring的设计者们折服,Spring系列中没有几行代码是我们看不懂的,而是难在理解设计思路,阅读Spring、SpringMVC、SpringBoot需要花...

阿里大牛再爆神著:SpringBoot+Cloud微服务手册

今天给大家分享的这份“Springboot+Springcloud微服务开发实战手册”共有以下三大特点...

WebClient是什么?SpringBoot中如何使用WebClient?

WebClient是什么?WebClient是SpringFramework5引入的一个非阻塞、响应式的Web客户端库。它提供了一种简单而强大的方式来进行HTTP请求,并处理来自服务器的响应。与传...

SpringBoot系列——基于mui的H5套壳APP开发web框架

  前言  大致原理:创建一个main主页面,只有主页面有头部、尾部,中间内容嵌入iframe内容子页面,如果在当前页面进行跳转操作,也是在iframe中进行跳转,而如果点击尾部按钮切换模块、页面,那...

在Spring Boot中使用 jose4j 实现 JSON Web Token (JWT)

JSONWebToken或JWT作为服务之间安全通信的一种方式而闻名。...

Spring Boot使用AOP方式实现统一的Web请求日志记录?

AOP简介AOP(AspectOrientedProgramming),面相切面编程,是通过代码预编译与运行时动态代理的方式来实现程序的统一功能维护的方案。AOP作为Spring框架的核心内容,通...

取消回复欢迎 发表评论: