渗透测试发现漏洞产生原因以及解决方法|网络安全|渗透测试服务

devtools/2024/12/28 1:33:25/

渗透测试发现的问题

SQL注入攻击

原因

后端数据库过于信任前端传入数据

攻击方式:

通过前端输入相关SQL语句,使得后端数据库执行,套取数据库中的关键信息

解决方法:

对于前端传来的数据不直接进行操作数据库,而是进行过滤后对数据库进行操作。

跨站脚本攻击(XSS攻击)

原因

主要是攻击客户端,输入输出都没有进行严格的过滤

攻击方式:

1、黑客在网页上提交恶意XSS攻击代码(评论形式)
2、服务器收到后,更新网页
3、第三方正常用户请求访问被修改的网页
4、浏览器发送被篡改的页面(带有恶意攻击代码页面)给第三方,第三方用户可能被攻击
如图,看图片上序号
在这里插入图片描述

解决方法:

加强对于网页修改内容输入输出的过滤。

上传文件过滤不严:

攻击方式:

在文件上传页面,可能会被攻击者上传攻击脚本文件,可能会通过压缩等规避对于文件名的限制

解决方法:

  1. 文件上传目录设置为不可执行
  2. 对文件后缀名进行检查;对文件头进行检查,不同的文件名会有不同的开头或者标志位
  3. 使用随机数改写文件名和文件路径,文件上传后需要执行代码,需要用户访问这个文件,随机改写后,会增加访问难度。

远程文件包含:

攻击方式:

在代码中调用一些远程函数包时,可能被调用的包经过改写,插入了恶意攻击的代码。

暴力破解:

产生原因:

密码过于简单,登录流程没有对密码输入次数进行限制

攻击方式:

利用自动化软件+密码字典进行密码破解

跨站请求伪造:

攻击目标:

攻击服务器

攻击方式:

黑客搭建自己的网站用于保存攻击对应服务器的信息,在用户访问服务器时将网站发送给正常用户,正常用户点击后浏览器自动将黑客网站上的请求通过正常用户的浏览器发送给服务器。
如图,看图片上序号
在这里插入图片描述

防御方式:

  1. 验证码,对于关键操作加上验证码
  2. token:在http请求中以参数形式加入一个随机产生的token,并在服务器建立一个拦截器验证这些token,没有token或是不正确的即可认为是CSRF攻击,进行拦截。

未授权访问:

攻击方式:

无需密码或是未授权即可直接登录,并且进行操作

防御方式:

验证码,对于关键操作加上验证码

敏感性息泄露

防御方式:

明确文件的权限

任意文件读取

防御方式:

明确文件的权限


http://www.ppmy.cn/devtools/145979.html

相关文章

最长公共子序列【东北大学oj数据结构10-3】C++

题面 对于给定两个序列 X 和 Y , 序列 Z 是 X 和 Y 的公共子序列是指如果 Z 同时是 X 和 Y 的子序列。 例如:如果 X {a, b, c, b, d, a, b} 和 Y {b, d, c, a, b, a} , 那么序列 {b, c, a} 是 X 和 Y 的一个公共子序列。 但是序列 { b , c, a } 不是 X 和 Y 的最…

centos单机部署seata

文章目录 场景分析下载seata包启动 场景 centos7.9 jdk17 安装部署seata 分析 jdk和seata的版本对应关系如图 JDK版本 推荐 Seata 版本 理由 JDK 8 任何 Seata 版本 JDK 8 是 Seata 长期支持的版本,兼容性最好。 JDK 11 Seata 1.2.0 适合需要长期支持且性能较高的应…

如何永久解决Apache Struts文件上传漏洞

Apache Struts又双叒叕爆文件上传漏洞了。 自Apache Struts框架发布以来,就存在多个版本的漏洞,其中一些漏洞涉及到文件上传功能。这些漏洞可能允许攻击者通过构造特定的请求来绕过安全限制,从而上传恶意文件。虽然每次官方都发布补丁进行修…

RCE 命令执行漏洞 过滤模式 基本的过滤问题 联合ctf题目进行实践

前言 知道RCE 命令执行分为 代码执行 和 命令执行 原理 : 就是用户的输入被当做命令或者代码执行了 从而造成了危害 代码执行 除了eval php代码执行漏洞的函数还有 eval()、a ssert()、 preg_replace()、 create_function()、 array_map()、 call_user_func(…

JavaScript 平面坐标多边形边界线(包围盒)算法

实现&#xff1a; /*** description: 获取多边形边界(边界框或包围盒算法)* param {*} polygon 多边形顶点数组* return {*} rect 顶点数组*/getBoundingRectangle(polygon) {if (!Array.isArray(polygon) || polygon.length < 3) {throw new Error(Polygon must have at le…

leetCode43.字符串相乘

题目&#xff1a; 给定两个以字符串形式表示的非负整数num1和num2,返回num1和num2的乘积&#xff0c;它们的乘积也表示为字符串形式。 注意&#xff1a;不能使用任何内置的BigInteger库或直接将输入转换为整数。 示例1&#xff1a; 输入&#xff1a;num1“2”,num2“3” 输出…

【ES6复习笔记】Class类(15)

介绍 ES6 提供了更接近传统语言的写法&#xff0c;引入了 Class&#xff08;类&#xff09;这个概念&#xff0c;作为对象的模板。通过 class 关键字&#xff0c;可以定义类。基本上&#xff0c;ES6 的 class 可以看作只是一个语法糖&#xff0c;它的绝大部分功能&#xff0c;…

mysql 数据库迁移到达梦数据库

1.windows安装达梦数据库&#xff0c;去官网下载 dm8 进行安装&#xff0c;安装后&#xff0c;可以使用管理工具管理数据 使用迁移工具对数据进行迁移&#xff1b; 2.使用php 或者 thinkphp连接达梦数据库 2.1、先PHP开启DM扩展 从达梦数据库安装目录下drivers/php_pdo 复制对…