JAVA开发运维(关于渗透测试与漏洞修复)

2023-11-12

对于C端的网站,H5,小程序或者app都需要进行渗透测试。

渗透测试是模拟真实黑客的攻击手段,对目标网站或主机进行全面的安全评估。 与黑客攻击不同,渗透测试的目的是尽可能多地发现安全漏洞,而真正的黑客只需要找到一种入侵。 点击进入目标系统。一个好的渗透测试员也可以被认为是一个好的黑客,也可以称为白帽。

渗透测试并没有一个标准的定义,一般通用的说法是,渗透测试指模拟攻击者入侵来评估计算机系统安全的行为,是一种授权的行为。

或者说是为了证明网络防御按照预期计划正常运行而提供的一种机制。再换句话说,渗透测试就是给你的系统安了一双眼睛。

一般渗透测试都由专业人士在不同位置利用各种手段对某个特定网络进行测试,以期发现和挖掘系统中存在的漏洞,然后输出渗透测试报告,并提交给网络的所有者。

一、渗透测试分类:

1、黑箱测试

黑箱测试又被称为所谓的“Zero-Knowledge Testing”,渗透者完全处于对系统一无所知的状态,通常这类型测试,最初的信息获取来自于DNS、Web、Email及各种公开对外的服务器。

2、白盒测试

白盒测试与黑箱测试恰恰相反,测试者可以通过正常渠道向被测单位取得各种资料,包括网络拓扑、员工资料甚至网站或其它程序的代码片段,也能够与单位的其它员工进行面对面的沟通。这类测试的目的是模拟企业内部雇员的越权操作。

3、隐秘测试

隐秘测试是对被测单位而言的,通常情况下,接受渗透测试的单位网络管理部门会收到通知:在某些时段进行测试。因此能够监测网络中出现的变化。但隐秘测试则被测单位也仅有极少数人知晓测试的存在,因此能够有效地检验单位中的信息安全事件监控、响应、恢复做得是否到位。

二、测试目标靶

1、主机操作系统渗透

对Windows、Solaris、AIX、Linux、SCO、SGI等操作系统本身进行渗透测试。

2、数据库系统渗透

对MS-SQL、Oracle、MySQL、Informix、Sybase、DB2、Access等数据库应用系统进行渗透测试。

3、应用系统渗透

对渗透目标提供的各种应用,如ASP、CGI、JSP、PHP等组成的WWW应用进行渗透测试。

4、网络设备渗透

对各种防火墙、入侵检测系统、网络设备进行渗透测试。

三、测试步骤

当前的自动化渗透领域,主要依赖自动化渗透工具和框架,包括:APT2、AutoSploit、NIG-AP、Deep Exploit、AutoPentest-DRL等。

工具:nmap、Burpsuite、Kali Linux 、sqlmap等

渗透测试的基本流程主要分为以下几步:

  • 明确目标

  • 信息收集

  • 漏洞探测(挖掘)

  • 漏洞验证(利用)

  • 提升权限

  • 清楚痕迹

  • 时候信息分析

  • 编写渗透测试报告

1、明确目标

主要是确定需要渗透资产范围;确定规则,如怎么去渗透;确定需求,如客户需要达到一个什么样的效果。

2、信息收集

收集一些基础信息,系统信息,应用信息,版本信息,服务信息,人员信息以及相关防护信息。

3、漏洞探测(挖掘)

主要是探测(挖掘)系统漏洞、web服务器漏洞、web应用漏洞以及其他端口服务漏洞。

4、漏洞验证(利用)

利用探测到的漏洞进行攻击

5、提升权限

提升权限主要是在当前用户权限不是管理员的时候需要进行提升权限,提升权限可以是提升系统权限,web应用权限或是数据库权限等。

6、清楚痕迹

清楚渗透过程中的一些痕迹,如添加的测试账号,上传的测试文件等。

7、事后信息分析

对整个渗透过程进行信息分析与整理,分析脆弱环节,技术防护情况以及管理方面的情况进行一个现状分析以及提出相关建议。

8、编写渗透测试报告

根据测试情况编写报告,说清楚渗透清单(范围)、攻击路径、渗透成果、漏洞详情及可行的修复建议,最后对整改渗透情况进行简单的总结和分析。

四、主要测试项

1、信息收集

信息收集剖析这是所有侵略恶意攻击前提条件/原曲/基本。根据对互联网信息收集剖析,能够随之、针对性地制订仿真模拟黑客攻击恶意攻击方案,以提升侵略成功概率、减少曝露或被发现了的机率。信息收集的办法包含服务器网络扫描、操作类型辨别、运用辨别、账户扫描仪、配置辨别这些。

2、端口扫描

根据对总体目标地址的TCP/UDP端口扫描,确认其所开放式的提供服务的数量及种类,这是每个网站渗透测试的前提。根据端口扫描,能够基本上确定一个系统软件的相关信息,融合测试工程师积累的经验可以知道其可能出现,和被利用的安全性缺点,为开展更深层次的渗入提供参考。

3、权限提升

根据获取信息与分析,具有二种概率,其一是总体目标系统软件存在重大缺点:测试工程师能直接保障措施系统软件,之后直接调研总体目标系统中缺点遍布、缘故,产生最后的检测报告;其二是总体目标系统软件并没有远程控制重要缺点,但是能够得到远程控制一般权限,这时候测试工程师能通过该一般权限进一步搜集总体目标系统数据。下面,竭尽全力获得当地权限,搜集当地材料信息内容,寻找当地权限提升的机遇。这种不断地信息收集剖析、权限提升的结论将组成本次新项目全部网站渗透测试流程的导出。

4、溢出测试

当测试工程师不能直接利用账号动态口令登陆系统时,也会使用系统软件溢出的办法立即得到自动控制系统权限,这种方法有时候也会导致系统死机或者从新启动,但是不会可能会导致内容丢失,若出现卡死等常见故障,只需把系统软件从新启动并打开原来服务项目就可以。一般情况下,假如未经授权,将无法开展该项测试。

5、WEB应用测试

Web脚本制作及应用测试针对Web及数据库服务开展。依据最新统计分析,脚本制作安全性缺点为现阶段Web系统,特别是存有动态性视频的Web系统非常严重的安全性缺点之一。利用脚本制作有关缺点轻者可以获得系统软件别的文件目录的访问限制,严重将有可能会获得系统软件控制权限。所以对于带有动态网站的Web、数据库系统等功能,Web脚本制作及应用测试将是不可缺少的的一个环节。

6、SQL注入攻击

SQL引入多见于运用了SQL数据库后端网络服务器,侵略者根据递交一些独特SQL句子,最后很有可能获得、伪造、操纵网址服务端数据库系统里面的内容。该类系统漏洞是侵略者常用侵略方式之一。

7、检测页面隐藏字段

网站应用系统软件常选用隐藏字段存储信息。很多根据页面的电子商务应用程序流程用隐藏字段来存放产品价格、登录名、登陆密码等敏感内容。故意用户使用实际操作隐藏字段具体内容做到故意交易盗取信息内容等情形,是一种非常可怕的系统漏洞。

8、跨站恶意攻击

侵略者可以利用网址来恶意攻击浏览此网站的终端产品用户,来获取客户动态口令或者使用网站挂马来西亚操纵手机客户端。

9、Cookie利用

网站应用系统软件常使用cookies机制在手机客户端服务器上储存一些信息内容,比如客户ID、动态口令、时戳等。侵略者很有可能根据伪造cookies具体内容,获得客户的账户,造成严重后果。

10、后门程序检查

系统软件开发环节中遗留下来的侧门和调节选择项有可能被侵略者所利用,造成侵略者轻而易举地从近道执行恶意攻击。

五、渗透测试发现的一般问题

渗透测试常常会发现如最常见的 SQL 注入漏洞、XSS 漏洞、文件上传漏洞、越权漏洞、弱口令等。

序号

漏洞

风险

支持不安全的TLSv1.0协议

序号

漏洞

风险

短信轰炸漏洞

支持不安全的TLSv1.0协议

TLS/SSL Sweet32漏洞

不安全的CORS配置漏洞

不安全的文件上传检测机制漏洞

Javascript框架版本过低漏洞

启动了不安全的HTTP方法漏洞

名词解释:

  • 注入测试

攻击者通过客户端提交恶意构造的SQL语句,来获取数据库中的敏感数据,修改数据库并执行数据库管理操作,在某些情况下能对操作系统执行系统命令。

  • 跨站脚本测试

XSS又叫CSS (Cross Site Script) ,跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意攻击用户的特殊目的,如盗取用户密码、种植木马等操作。

  • 路径遍历测试

许多的Web应用程序一般会有对服务器的文件读取查看的功能,大多会用到提交的参数来指明文件名,形如:http://www.xxx.com/getfile=image.jpg当服务器处理传送过来的image.jpg文件名后,Web应用程序即会自动添加完整路径,形如“d://site/images/image.jpg”,将读取的内容返回给访问者。由于文件名可以任意更改而服务器支持“~/”,“/..”等特殊符号的目录回溯,从而使攻击者越权访问或者覆盖敏感数据,如网站的配置文件、系统的核心文件。

  • 绕过授权模式

测试应用程序B/S模式身份验证机制是否严格,如访问未授权文件,COOKIES后台欺骗。通过修改数据包来提升普通用户的权限,并尝试执行管理员操作等。

  • 文件包含漏洞测试

服务器通过PHP(函数)去包含任意文件时,由于要包含的这个文件来源过滤不严,从而可去包含一个恶意文件,而攻击者可以构造这个恶意文件来源,如读取目标服务器上的数据库配置文件,包含远程脚本木马文件获取Webshell来操控网站等权限。

  • 弱口令测试

弱口令指的是容易被别人猜测到或被破解工具破解的口令均为弱口令。例如“123”、“abc”等,并且大多程序是通过用户名和口令来作为身份验证机制。

  • 文件上传测试

网站的上传文件页面若对上传的文件类型过滤的不严格或上传逻辑漏洞,可能被恶意绕过上传验证,攻击者可以上传网页后门以控制网站。

  • 敏感信息泄漏

通过恶意构造URL地址让页面报错,从而得到服务器的敏感信息,如网站绝对路径、版本等,并使用工具扫描网站的备份文件,测试文件等,使攻击者能进一步的了解网站的结构

  • 暴力破解测试

暴力破解密码,其中一种就是用某种暴力破解软件,一个接一个的试,直到试验出正确的密码,也称为穷举法,如使用XSCAN猜解FTP密码。

  • 溢出测试

溢出是黑客利用操作系统的漏洞,专门开发了一种程序,加相应的参数运行后,就可以得到目标服务器管理员资格的控制权,如常见的MS07-029 、MS08-067等。

  • 嗅探测试

用集线器组建的网络是基于共享的原理的,局域网内所有的计算机都接收相同的数据包,而网卡构造了硬件的“过滤器”通过识别MAC地址过滤掉和自己无关的信息,嗅探程序只需关闭这个过滤器,将网卡设置为“混杂模式”就可以进行嗅探,用交换机switch组建的网络是基于“交换”原理的,交换机不是把数据包发到所有的端口上,而是发到目的网卡所在的端口,常见黑客嗅探工具Cain,通过ARP欺骗可嗅探各种密码。

  • 权限提升

攻击者通过使用各种工具和技术,使用他们可获得从Guest到SYSTEM不等的访问权限。常见如Windows Linux本地溢出漏洞,应用程序FTP SERV-U本地提权等。

  • 配置缺陷测试

目标网站应用程序若设置不当,会产生目录浏览,IIS写入,数据库文件泄漏等漏洞,通过这些配置缺陷可查看网站根目录下所有文件,并能直接PUT脚本木马,达到控制网站的目的。

六、漏洞修复

.......

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JAVA开发运维(关于渗透测试与漏洞修复) 的相关文章

  • 从 java sdk 向对等方发送提案时出现访问被拒绝错误

    我正在尝试使用以下代码查询区块链并收到访问被拒绝错误 我也遇到同样的错误sendTransactionProposal方法也是如此 UserContext adminUserContext RegisterEnrollUser regist
  • 存根方法时出现 InvalidUseOfMatchersException

    我有这个 TestNG 测试方法代码 InjectMocks private FilmeService filmeService new FilmeServiceImpl Mock private FilmeDAO filmeDao Bef
  • 如何将 javax.persistence.Column 定义为 Unsigned TINYINT?

    我正在基于 MySQL 数据库中的现有表创建 Java 持久性实体 Bean 使用 NetBeans IDE 8 0 1 我在这个表中遇到了一个字段 其类型为 无符号 TINYINT 3 我发现可以执行以下操作将列的类型定义为 unsign
  • Spring Security 自定义过滤器

    我想自定义 Spring security 3 0 5 并将登录 URL 更改为 login 而不是 j spring security check 我需要做的是允许登录 目录并保护 admin report html 页面 首先 我使用教
  • @RestController 没有 @ResponseBody 方法工作不正确

    我有以下控制器 RestController RequestMapping value base url public class MyController RequestMapping value child url method Req
  • 使用 GWT 读取非常大的本地 XML 文件

    我正在使用 GWT 构建我的第一个 Java 应用程序 它必须从一个非常大的 XML 文件中读取数据 当我尝试发送对文件中信息的请求时遇到问题 并且我不太确定它是否与文件的大小或我的语义有关 在我的程序中 我有以下内容 static fin
  • 是否有任何简单(且最新)的 Java 框架可用于在 Swing 应用程序中嵌入电影?

    我正在构建一个小型 Swing 应用程序 我想在其中嵌入一部电影 重要的是 这个应用程序是一个 WebStart 应用程序 并且该库应该能够打包在我启动的 jnlp 中 即 不依赖于本机库 我知道并尝试过 JMF 但我认为与其他框架相比 其
  • 打印星号的 ASCII 菱形

    我的程序打印出这样的钻石 但只有当参数或菱形的每一面为4 例如如果我输入6 底部三角形的间距是错误的 我一直在试图找出答案 当参数改变时 底部的三角形不会改变 只有顶部的三角形会改变 它只适用于输入4 public static void
  • Java:在 eclipse 中导出到 .jar 文件

    我正在尝试将 Eclipse 中的程序导出到 jar 文件 在我的项目中 我添加了一些图片和 PDF s 当我导出到 jar 文件时 似乎只有main已编译并导出 我的意愿是如果可能的话将所有内容导出到 jar 文件 因为这样我想将其转换为
  • Spring Data JPA 选择不同

    我有一个情况 我需要建立一个select distinct a address from Person a 其中地址是 Person 内的地址实体 类型的查询 我正在使用规范动态构建我的 where 子句并使用findAll Specifi
  • Spring Boot自动装配存储库始终为空[重复]

    这个问题在这里已经有答案了 每次我进入我的服务类时 存储库似乎都没有自动连接 因为它不断抛出 NullPointerException 谁能帮我检查一下我缺少什么吗 这是我的代码 演示应用程序 java package com exampl
  • Integer.parseInt("0x1F60A") 以 NumberformatException 结束

    我尝试从数据库中获取长字符串内的表情符号代码 格式如下 0x1F60A 所以我可以访问代码 但它将是String 起初 我尝试通过执行以下操作来转换变量tv setText beforeEmo getEmijoByUnicode int e
  • 是否可以使用 Flying Saucer (XHTML-Renderer) 将 css 解析为类路径资源?

    我正在尝试将资源打包到 jar 中 但我无法让 Flying Saucer 在类路径上找到 css 我无法轻松构建 URL 来无缝解决此问题 https stackoverflow com questions 861500 url to l
  • 在另一个模块中使用自定义 gradle 插件模块

    我正在开发一个自定义插件 我希望能够在稍后阶段将其部署到存储库 因此我为其创建了一个独立的模块 在对其进行任何正式的 TDD 之前 我想手动进行某些探索性测试 因此 我创建了一个使用给定插件的演示模块 到目前为止 我发现执行此操作的唯一方法
  • Java:如何为山区时间创建 TimeZone 对象?

    必须不禁用夏令时 嗯 在这个清单 http en wikipedia org wiki List of tz database time zones在 zoneinfo 时区名称中 有很多声称是 山地时间 找到最适合您想要的那个 然后使用它
  • 如何在 Spring 属性中进行算术运算?

  • 读取电子邮件的文本文件转换为 Javamail MimeMessage

    我有一个电子邮件原始来源的文本文件 直接从 gmail 复制 如果您单击 查看原始文件 您就会看到它 我想读入该文件并将其转换为 MimeMessage 如果您好奇为什么 我设置了 JavaMaildir 并且需要用电子邮件填充它的收件箱以
  • 在 SWT/JFace RCP 应用程序中填充巨大的表

    您将如何在 SWT 表中显示大量行 巨大是指超过 20K 行 20 列的东西 不要问我为什么需要展示那么多数据 这不是重点 关键是如何让它尽可能快地工作 这样最终用户就不会厌倦等待 每行显示某个对象的实例 列是其属性 一些 我想使用 JFa
  • “无法实例化活动”错误

    我的一个 Android 应用程序拥有大约 100 000 个用户 每周大约 10 次 我会通过 Google 的市场工具向我报告以下异常情况 java lang RuntimeException Unable to instantiate
  • 在浏览器刷新中刷新检票面板

    我正在开发一个付费角色系统 一旦用户刷新浏览器 我就需要刷新该页面中可用的统计信息 统计信息应该从数据库中获取并显示 但现在它不能正常工作 因为在页面刷新中 java代码不会被调用 而是使用以前的数据加载缓存的页面 我尝试添加以下代码来修复

随机推荐

  • 微信小程序连接蓝牙设备流程(一)

    微信小程序的特点是无需下载App 只要是安装有微信的一部智能手机 几乎就可以运行微信小程序 基于这个特点 我设计了一款小程序版的蓝牙串口助手 适用于简单的蓝牙串口调试工作 从事蓝牙相关产品研发的兄弟们知道 手机端的像LightBlue BL
  • java--基础--20.1--反射--基础

    java 基础 20 1 反射 基础 1 介绍 反射 就是通过class文件对象 去使用该文件中的成员变量 构造方法 成员方法 1 1 测试用的类 public class User private String name int id p
  • 5.Java编程基础

    个人简介 作者简介 大家好 我是W chuanqi 一个编程爱好者 个人主页 W chaunqi 支持我 点赞 收藏 留言 愿你我共勉 没有什么比勇气更温文尔雅 没有什么比怯懦更冷酷无情 文章目录 Java编程基础 1 Java基本语法 1
  • 平衡二叉树(AVL树)

    平衡二叉树树专题 存储 基本操作 插入 代码来源 晴神 算法笔记 平衡二叉树定义 左右子树高度之差的绝对值不超过1 存储 struct node int data height node lchild rchild 新建结点 node ne
  • 【Interpreter模式】C++设计模式——解析器

    解析器 一 设计流程探讨 二 模式介绍 三 代码实现 C 设计模式大全 23种设计模式合集详解 点我跳转 一 设计流程探讨 您的团队希望开发一款能解析特定语言的系统 如解析系统传入的字符串a b c d 此时abcd是不确定的 这个字符串只
  • 新型的刷脸支付方式给人们生活带来很多便利

    随着科技的飞速发展 人们的支付方式发生了巨大的改变 从传统的现金支付逐渐演变到移动支付 出门可以身无分文 仅仅揣上一台手机就能走天下 如今最流行的两大支付端是支付宝和微信支付 新型的支付方式给人们生活带来诸多的便利 就比如说 如果你不想在家
  • Unity 创建模型并让模型动态运动

    最近项目要实现一个做正弦运动的线条 我想到的方案是改变模型的顶点 利用函数y aSin bx C 让模型顶点的Y坐标 根据X坐标运动 这样就实现如下图的运动 废话不多说 是骡子是马拿出来遛一遛 来看一张效果图 好 开始说如何实现 首先新建一
  • opencv答题卡识别

    最近做了一个答题卡识别项目 主要是利用opencv图像处理方法识别答题卡 登录界面 主界面 图片 识别结果 代码部分 主程序main py import sys cv2 from PyQt5 QtGui import from PyQt5
  • 机器学习四 KNN算法

    KNN算法 前言 一 距离常量 二 KNN算法步骤 三 算法优点 四 算法缺点 五 代码示例 前言 KNN解决的是分类问题 k Nearest Neighbor算法 也叫K最近邻算法 K近邻算法KNN就是给定一个训练数据集 对新的输入实例
  • 三款程序员必备神器,爆炸!

    精致 简洁 极客范 想必是每个程序员的终生追求 从此篇文章中您将得到三款免费神器 良心到爆炸 第一 二款 哎 为啥是第一 二款呢 因为这两款神器配合使用的话效果增益 Android WIFI ADB Vysor 最近经常听同学们 即将毕业的
  • deep feature flow

    因为如果将图片识别的网络直接引入视频中的帧 就会发现计算量就会很大 作者提出的这个网络利用的是 1 fowl estimetion feature propagation 比一般的卷积计算速度快很多 2 在空间上找一个关键帧做图像识别 然后
  • 基于协同过滤算法和深度学习的音乐推荐

    基于协同过滤算法和深度学习的音乐推荐 协同过滤 音乐推荐 深度学习 音乐检索 文章目录 基于协同过滤算法和深度学习的音乐推荐 Github 地址 微信小程序版实现 介绍 参考项目 技术栈 Docker 部署 如用此方式部署 后面的手动安装步
  • SpringBoot中整合fastjson,自定义jackson、gson

    如今炒的火热的前后端分离项目 大多数开发人员选择RESTful设计风格 Java Web 人员经常要设计 RESTful API 这种设计通常使用 json 数据进行交互 那么前端传入的 json 数据如何序列化成 Java 对象 后端返回
  • Shell编程规范

    目录 1 Shell脚本概述 1 1shell的作用 1 2Shell脚本应用场景 1 3Shell脚本概念及构成 1 4脚本执行逻辑及执行方式 1 4 1指定路径去执行文件 需要有执行权限 1 4 2指定解释器去执行 不需要权限 1 4
  • PHP实现阿里云金融级实人认证人脸识别h5案例源码,带签名

    PHP部分 本代码段为项目中的代码 部分参数接收方式和路径请自行更改
  • linux hook

    http www codeproject com Articles 33340 Code Injection into Running Linux Application
  • 软件测试面试,一定要准备的7个高频面试题

    问题1 请自我介绍下 核心要素 个人技能优势 工作背景 经验亮点 参考回答 第一种 基本信息 离职理由 面试官您好 我叫张三 来自番茄市 在软件测试行业有 3 年的工作经验 做过 Web APP及小程序项目的测试工作 有独立负责整个项目的测
  • java -jar运行程序,但是断开服务器连接,就会关闭问题

    1 nohup java jar XXX jar gt log out 解析 把此进程作为后台进程运行 且把日志输出到log out文件中 2 指定jdk 进行项目启动 JAVA HOME bin java Xms 256m Xmx 102
  • vue面试题

    1 vue子组件调用父组件方法 方法1 直接在子组件中通过this parent event来调用父组件的方法 方法2 在子组件里用 emit向父组件触发一个事件 父组件监听这个事件就可以了 方法3 在父组件把方法传入子组件中 在子组件里直
  • JAVA开发运维(关于渗透测试与漏洞修复)

    对于C端的网站 H5 小程序或者app都需要进行渗透测试 渗透测试是模拟真实黑客的攻击手段 对目标网站或主机进行全面的安全评估 与黑客攻击不同 渗透测试的目的是尽可能多地发现安全漏洞 而真正的黑客只需要找到一种入侵 点击进入目标系统 一个好