Web渗透测试流程

什么是渗透测试

渗透测试 (penetration test),是通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法。这个过程包括对系统的任何弱点、技术缺陷或漏洞的主动分析,这个分析是从一个攻击者可能存在的位置来进行的,并且从这个位置有条件主动利用安全漏洞。

渗透测试可以测试网络、应用程序、操作系统和其他计算机系统的安全性,以评估其能否抵抗未经授权的访问和攻击。渗透测试可以使用多种工具和技术,包括端口扫描、漏洞扫描和渗透测试工具,如Nmap和Burp Suite等。

渗透测试需要注意安全、法律和伦理问题。在渗透测试过程中,渗透测试人员必须确保所做的一切都在法律和道德的范围内。此外,测试人员必须将所有发现的漏洞和弱点保密,并确保没有未经授权的访问或数据泄漏风险。

渗透测试流程

渗透测试的流程要从明确目标,然后进行信息收集、漏洞扫描、漏洞利用、权限维持,最后编写报告。

信息收集

信息收集(Information Gathering),是指通过各种方式获取所需要的信息。信息收集对于渗透测试来说非常重要,只要掌握目标程序足够多的信息,才能更好地进行漏洞检测。

当我们拿到确定了目标后,可以从以下几个方面来对其进行信息收集:

  1. 站点基础信息:站点的域名、IP以及IP所开放的端口等;站点使用的框架、编写语言等,以及WEB中间件等;
  2. 站点文件:使用目录扫描工具查看是否有后台;是否有未授权的敏感文件;收集站点的JS文件看其中是否有敏感信息;
  3. 站点子域名:使用子域名扫描工具查找所有子域名;
  4. 站点Whois信息:域名注册查询,注册登记的信息(姓名,地址,电话,邮箱,网络ip等)
  5. 旁站信息:很多网站都是被托管在云主机上,一个服务器中可以运行多个网站,可以查询同IP对应的网站或者C段的站点信息。

漏洞扫描

漏洞扫描是指基于漏洞数据库,通过扫描等手段对指定的远程或者本地计算机系统的安全脆弱性进行检测,发现可利用漏洞的一种安全检测的行为。

漏洞扫描也分为自动化测试与手动测试两种:

自动化

这里我们可以利用一些自动化的漏洞扫描工具,例如AWVS、XRAY、goby等,将收集到的站点进行批量化扫描,这些工具带有POC库会对站点进行探测,自动测试站点是否存在漏洞,并生成相应报告供我们查看。

自动化扫描批量化、自动化,速度快,但因为是根据人为写好的POC来进行探测的,所以会有误报的情况,我们需要对照报告去验证这些漏洞是否存在;产生的流量会很大,可能导致站点崩溃或被安全设备拦截。

手动测试

部分漏洞是无法被扫描器扫出来的,例如逻辑漏洞和一些SQL注入、存储型XSS漏洞,这时候就需要我们进行手动测试。

漏洞利用

漏洞利用(Exploit)是计算机安全术语,指的是利用程序中的某些漏洞,来得到计算机的控制权(使自己编写的代码越过具有漏洞的程序的限制,从而获得运行权限)。

通过手工或自动化工具收集到了漏洞后,我们需要验证这些漏洞的真实性与危害性。例如文件上传漏洞,我们可以利用来上传一句话木马并使用蚁剑等工具连接目标站点所在服务器;利用命令执行(RCE)漏洞来反弹shell;利用文件包含来获取站点服务器上的敏感文件与敏感信息等。

提权与权限维持

提权

提权指的是提高自己在服务器中的权限,主要针对网站入侵过程中,当入侵某一网站时,通过各种漏洞提升WEBSHELL权限以夺得该服务器权限。

也可以是我们拿到站点低权限账号后,通过垂直越权漏洞升级为高权限账号。

权限维持

简单来讲就是我们获取到目标服务器权限后,如何维持住该权限,例如通过ssh密码成功登录到服务器了,如果所有者修改了密码,就无法再进行登录了,因此就需要进行权限维持。

如果是Windows服务器,我们可以使用net user catalyze$来创建隐藏账号等;Linux的话可以写入不死码等。

报告编写

不管是项目还是挖掘SRC等,最后我们都需要编写报告来记录渗透测试的全流程,并明确的写出哪里存在漏洞,以及漏洞修补的方法。以便于网站管理员根据我们的渗透测试报告修补这些漏洞和风险。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/733119.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux 查看打开使用了哪些端口

你可以使用 netstat 命令来查看Linux系统中正在使用的端口。例如,要查看所有正在使用的TCP和UDP端口,你可以运行: sudo netstat -tulpn如果你只想查看所有正在使用的TCP端口,你可以运行: sudo netstat -tpln 如果你只…

全网最最最详细centos7如何安装docker教程

在CentOS 7上安装Docker主要包括以下步骤: 1. 卸载旧版本的Docker 首先,需要确保系统上没有安装旧版本的Docker。可以通过以下命令来卸载它们: sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-late…

代码随想录day40||● 343. 整数拆分 ● 96.不同的二叉搜索树

343. 整数拆分 - 力扣&#xff08;LeetCode&#xff09; 动态规划&#xff0c;本题关键在于理解递推公式&#xff01;| LeetCode&#xff1a;343. 整数拆分_哔哩哔哩_bilibili class Solution { public:int integerBreak(int n) {vector<int> dp(n1);dp[2]1;for(int i3…

【Linux】编译器-gcc/g++使用

个人主页 &#xff1a; zxctscl 文章封面来自&#xff1a;艺术家–贤海林 如有转载请先通知 文章目录 1. 前言2. 初见gcc和g3. 程序的翻译过程3.1 预处理3.1.1 宏替换 去注释 头文件展开3.1.2 条件编译 3.2 编译3.3 汇编3.4 链接 4. 链接4.1 动态链接4.2 静态链接 1. 前言 在之…

吴恩达机器学习-可选实验:特征缩放和学习率(多变量)

文章目录 目标工具概念问题陈述数据集多变量梯度下降学习率a9.9e-7a9e-7a1e-7 特征缩放实现 恭喜致谢 目标 在本实验中&#xff0c;你将: 利用在上一个实验中开发的多变量例程对具有多个特征的数据集运行梯度下降探讨学习率alpha对梯度下降的影响通过使用z-score归一化的特征…

域控操作十:安装包exe转msi软件下发

需要的文件 Advanced Installer 软件用来将exe转换成msi因为域控只能下发msi格式 一个exe安装包这里拿微信举例 一个没有密码的共享文件夹 1.exe转MSI 2&#xff0c;开始下发 服务器和用户刷新策略 #完成

某品零食交易平台设计与实现|基于springboot+ Mysql+Java的某品交易平台设计与实现(源码+数据库+文档+PPT)

目录 基于springboot MysqlJava的某品交易平台设计与实现 摘 要 系统详细设计 数据库设计 论文参考 源码获取 文末获取源码联系 基于springboot MysqlJava的某品交易平台设计与实现 摘 要 随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的…

html--彩虹爱心

文章目录 js内容cssreset.min.cssstyle.css html内容 js内容 const colors ["#e03776","#8f3e98","#4687bf","#3bab6f","#f9c25e","#f47274"]; const SVG_NS http://www.w3.org/2000/svg; const SVG_XLINK &q…

自动化运维工具----Ansible playbook详解

一.Ansible playbook简介 1.playbook是ansible用于配置&#xff0c;部署&#xff0c;和管理被节点的剧本 2.通过playbook的详细描述&#xff0c;执行其中的一些列tasks&#xff0c;可以让远端的主机达到预期的状态。playbook就像ansible控制器给被控节点列出的一系列to-do-lis…

Spring Boot 多环境配置

Spring Boot 多环境配置 在现代的软件开发中&#xff0c;通常需要将应用程序部署到不同的环境中&#xff0c;如开发环境、生产环境和测试环境等。每个环境可能需要不同的配置参数&#xff0c;例如数据库连接信息、日志级别等。在 Spring Boot 中&#xff0c;我们可以通过简单的…

D. Exam in MAC - 思维

题面 分析 可以计算出 0 0 0 到 c c c 之间所有的对数&#xff0c;一共有 c 1 c 1 c1 个数&#xff0c;所以有(c 1) * (c 2) / 2 对。然后考虑什么情况可以导致出现不符合的情况&#xff1a; 1.可能会存在 x y x y xy 在集合中出现过的&#xff0c;那么对于集合中…

智慧库室管控系统-智慧枪弹管控系统

项目背景&#xff1a; 针对部队装备管理现状&#xff0c;部队在进行硬件系统建设的同时&#xff0c;需通过装备管理系统软件的建设&#xff0c;综合集成监控、报警、出入库、信息发布、库管理、监测、防护等系统&#xff0c;对装备进行立体监控、实时预警、快速处理&#xff0…

springboot255基于spring boot的疫情信息管理系统

疫情信息管理系统的设计与实现 摘要 近年来&#xff0c;信息化管理行业的不断兴起&#xff0c;使得人们的日常生活越来越离不开计算机和互联网技术。首先&#xff0c;根据收集到的用户需求分析&#xff0c;对设计系统有一个初步的认识与了解&#xff0c;确定疫情信息管理系统…

【每日刷题】栈与队列-LC394、LC347、LC215

题外话&#xff1a;感觉脑子没长到栈这块…最近刷栈的题都好难啊…哭哭…坚持坚持&#xff01;多刷几遍就好了&#xff01;&#xff01; 1. LC394.字符串解码 题目链接 先说数据结构。 维护两个栈&#xff1a;一个栈存之前的字符串&#xff0c;另一个栈存之后的字符串的重复…

基于命名实体链接的事件抽取与知识图谱在电商领域的应用

开源项目推荐 多模态AI能力引擎平台: 免费的自然语言处理、情感分析、实体识别、图像识别与分类、OCR识别、语音识别接口&#xff0c;功能强大&#xff0c;欢迎体验。 多模态AI能力引擎平台: 免费的自然语言处理、情感分析、实体识别、图像识别与分类、OCR识别、语音识别接口…

RuntimeError: Unable to find a valid cuDNN algorithm to run convolution

这个错误通常出现在尝试使用cuDNN&#xff08;CUDA Deep Neural Network库&#xff09;进行卷积运算时&#xff0c;但cuDNN没有找到一个合适的算法来执行这个运算。这可能是由以下几个原因导致的&#xff1a; CUDA和cuDNN版本不兼容&#xff1a;确保你安装的CUDA和cuDNN版本是相…

Linux: 网络: ipsec ipv6 mtu问题一例

最近遇到一个问题 将ipv6的MTU设置为1300,然后从在IPv6层之上再添加一个ipsec/esp层。 同时上层应用有大量的数据发出来,触发最大MSS发送数据,这个时候就会出现自己给自己发送packet too big ICMPv6的消息。 产生这个错误的原因和一个commit相关,下面这个commit说了一个情…

mysql | 查询数据的过程|优化-->索引 |存储引擎

查询的过程 首先确认mysql 服务器是否启动 systemctl mysqld status 登录连接 mysql -h i p − u ip -u ip−uuser -p (-h 指定服务器ip -u 指定用户名 -p 指定密码) mysql 数据包 经过抓包分析&#xff08;mysql包其实就是基于tcp协议 3306端口) 传输采用mysql 协议&#xff0…

云原生构建 微服务、容器化与容器编排

第1章 何为云原生&#xff0c;云原生为何而生 SOA也就是面向服务的架构 软件架构的发展主要经历了集中式架构、分布式架构以及云原生架构这几代架构的发展。 微服务架构&#xff0c;其实是SOA的另外一种实现方式&#xff0c;属于SOA的子集。 在微服务架构下&#xff0c;系统…

Web本体语言OWL

语义网&#xff08;Semantic Web&#xff09;&#xff1a; 语义网是万维网联盟&#xff08;W3C&#xff09;提出的一种愿景&#xff0c;旨在增强现有Web的表达能力和智能处理能力&#xff0c;通过标准化的技术手段赋予网络数据更加精确和可计算的语义&#xff0c;使得机器能够…