news 2026/2/24 15:05:47

【安全】Web渗透测试(全流程)_渗透测试学习流程图

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【安全】Web渗透测试(全流程)_渗透测试学习流程图
1 信息收集
1.1 域名、IP、端口

发现:一共开放两个端口,80为web访问端口,3389为windows远程登陆端口,嘿嘿嘿,试一下

发现:是Windows Server 2003系统,OK,到此为止。

1.2 指纹识别

指纹?其实就是网站的信息。比如通过可以访问的资源,如网站首页,查看源代码:

2 漏洞扫描
2.1 主机扫描

经典主机漏扫工具,看看有没有CVE漏洞:

2.2 Web扫描
3 渗透测试

涉及工具的学习:

DVWA

Burp Suite

3.1 弱口令漏洞

目标网站管理入口(或数据库等组件的外部连接)使用了容易被猜测的简单字符口令、或者是默认系统账号口令。

  1. 如果不存在验证码,则直接使用相对应的弱口令字典使用burpsuite 进行爆破
  2. 如果存在验证码,则看验证码是否存在绕过、以及看验证码是否容易识别
  1. 默认口令以及修改口令都应保证复杂度,比如:大小写字母与数字或特殊字符的组合,口令长度不小于8位等
  2. 定期检查和更换网站管理口令
3.2 文件下载(目录浏览)漏洞

一些网站由于业务需求,可能提供文件查看或下载的功能,如果对用户查看或下载的文件不做限制,则恶意用户就能够查看或下载任意的文件,可以是源代码文件、敏感文件等。

  1. 查找可能存在文件包含的漏洞点,比如js,css等页面代码路径
  2. 看看有没有文件上传访问的功能
  3. 采用…/来测试能否夸目录访问文件
  1. 采用白名单机制限制服务器目录的访问,以及可以访问的文件类型(小心被绕过)
  2. 过滤【./】等特殊字符
  3. 采用文件流的访问返回上传文件(如用户头像),不要通过真实的网站路径。

示例:tomcat,默认关闭路径浏览的功能:

<param-name>listings</param-name> <param-value>false</param-value>
3.3 任意文件上传漏洞

目标网站允许用户向网站直接上传文件,但未对所上传文件的类型和内容进行严格的过滤。

  1. 收集网站信息,判断使用的语言(PHP,ASP,JSP)
  2. 过滤规则绕过方法:
  1. 对上传文件做有效文件类型判断,采用白名单控制的方法,开放只允许上传的文件型式;
  2. 文件类型判断,应对上传文件的后缀、文件头、图片类的预览图等做检测来判断文件类型,同时注意重命名(Md5加密)上传文件的文件名避免攻击者利用WEB服务的缺陷构造畸形文件名实现攻击目的;
  3. 禁止上传目录有执行权限;
  4. 使用随机数改写文件名和文件路径,使得用户不能轻易访问自己上传的文件。
3.4 命令注入漏洞

目标网站未对用户输入的字符进行特殊字符过滤或合法性校验,允许用户输入特殊语句,导致各种调用系统命令的web应用,会被攻击者通过命令拼接、绕过黑名单等方式,在服务端运行恶意的系统命令。

  1. 拒绝使用拼接语句的方式进行参数传递;
  2. 尽量使用白名单的方式(首选方式);
  3. 过滤危险方法、特殊字符,如:【|】【&】【;】【'】【"】等
3.5 SQL注入漏洞

目标网站未对用户输入的字符进行特殊字符过滤或合法性校验,允许用户输入特殊语句查询后台数据库相关信息

  1. 手动测试,判断是否存在SQL注入,判断是字符型还是数字型,是否需要盲注
  2. 工具测试,使用sqlmap等工具进行辅助测试
  1. 防范SQL注入攻击的最佳方式就是将查询的逻辑与其数据分隔,如Java的预处理,PHP的PDO
  2. 拒绝使用拼接SQL的方式
3.6 跨站脚本漏洞

当应用程序的网页中包含不受信任的、未经恰当验证或转义的数据时,或者使用可以创建 HTML或JavaScript 的浏览器 API 更新现有的网页时,就会出现 XSS 缺陷。XSS 让攻击者能够在受害者的浏览器中执行脚本,并劫持用户会话、破坏网站或将用户重定向到恶意站点。

三种XSS漏洞:

  1. 存储型:用户输入的信息被持久化,并能够在页面显示的功能,都可能存在存储型XSS,例如用户留言、个人信息修改等。
  2. 反射型:URL参数需要在页面显示的功能都可能存在反射型跨站脚本攻击,例如站内搜索、查询功能。
  3. DOM型:涉及DOM对象的页面程序,包括:document.URL、document.location、document.referrer、window.location等

示例:

  1. 存储型:
  2. 反射型:
  3. DOM型:
  1. 不信任用户提交的任何内容,对用户输入的内容,在后台都需要进行长度检查,并且对【<】【>】【"】【'】【&】等字符做过滤
  2. 任何内容返回到页面显示之前都必须加以html编码,即将【<】【>】【"】【'】【&】进行转义。
3.7 跨站请求伪造漏洞

CSRF,全称为Cross-Site Request Forgery,跨站请求伪造,是一种网络攻击方式,它可以在用户毫不知情的情况下,以用户的名义伪造请求发送给被攻击站点,从而在未授权的情况下进行权限保护内的操作,如修改密码,转账等。

  1. 使用一次性令牌:用户登录后产生随机token并赋值给页面中的某个Hidden标签,提交表单时候,同时提交这个Hidden标签并验证,验证后重新产生新的token,并赋值给hidden标签;
  2. 适当场景添加验证码输入:每次的用户提交都需要用户在表单中填写一个图片上的随机字符串;
  3. 请求头Referer效验,url请求是否前部匹配Http(s)😕/ServerHost
  4. 关键信息输入确认提交信息的用户身份是否合法,比如修改密码一定要提供原密码输入
  5. 用户自身可以通过在浏览其它站点前登出站点或者在浏览器会话结束后清理浏览器的cookie;
3.8 内部后台地址暴露

一些仅被内部访问的地址,对外部暴露了,如:管理员登陆页面;系统监控页面;API接口描述页面等,这些会导致信息泄露,后台登陆等地址还可能被爆破。

  1. 通过常用的地址进行探测,如login.html,manager.html,api.html等;
  2. 可以借用burpsuite和常规页面地址字典,进行扫描探测
  1. 禁止外网访问后台地址;
  2. 使用非常规路径(如对md5加密)。
3.9 信息泄露漏洞
  1. 备份信息泄露:目标网站未及时删除编辑器或者人员在编辑文件时,产生的临时文件,或者相关备份信息未及时删除导致信息泄露。
  2. 测试页面信息泄露:测试界面未及时删除,导致测试界面暴露,被他人访问。
  3. 源码信息泄露:目标网站文件访问控制设置不当,WEB服务器开启源码下载功能,允许用户访问网站源码。
  4. 错误信息泄露:目标网站WEB程序和服务器未屏蔽错误信息回显,页面含有CGI处理错误的代码级别的详细信息,例如SQL语句执行错误原因,PHP的错误行数等。
  5. 接口信息泄露:目标网站接口访问控制不严,导致网站内部敏感信息泄露。
  1. 备份信息泄露、测试页面信息泄露、源码信息泄露,测试方法:使用字典,爆破相关目录,看是否存在相关敏感文件

  2. 错误信息泄露,测试方法:发送畸形的数据报文、非正常的报文进行探测,看是否对错误参数处理妥当。

  3. 接口信息泄露漏洞,测试方法:使用爬虫或者扫描器爬取获取接口相关信息,看目标网站对接口权限是否合理

  1. 备份信息泄露漏洞:删除相关备份信息,做好权限控制
  2. 测试页面信息泄露漏洞:删除相关测试界面,做好权限控制
  3. 源码信息泄露漏洞:做好权限控制
  4. 错误信息泄露漏洞:将错误信息对用户透明化,在CGI处理错误后可以返回友好的提示语以及返回码。但是不可以提示用户出错的代码级别的详细原因
  5. 接口信息泄露漏洞:对接口访问权限严格控制
3.10 失效的身份认证

通常,通过错误使用应用程序的身份认证和会话管理功能,攻击者能够破译密码、密钥或会话令牌, 或者利用其它开发缺陷来暂时性或永久性冒充其他用户的身份。

  1. 在登陆前后观察,前端提交信息中,随机变化的数据,总有与当前已登陆用户进行绑定的会话唯一标识,常见如cookie
  2. 一般现在网站没有那种简单可破解的标识,但是如果是跨站认证,单点登录场景中,可能为了开发方便而简化了身份认证
  1. 使用强身份识别,不使用简单弱加密方式进行身份识别;
  2. 服务器端使用安全的会话管理器,在登录后生成高度复杂的新随机会话ID。会话ID不能在URL中,可以安全地存储,在登出、闲置超时后使其失效。
3.11 失效的访问控制

未对通过身份验证的用户实施恰当的访问控制。攻击者可以利用这些缺陷访问未经授权的功能或数据,例如:访问其他用户的帐户、查看敏感文件、修改其他用户的数据、更改访问权限等。

  1. 登入后,通过burpsuite 抓取相关url 链接,获取到url 链接之后,在另一个浏览器打开相关链接,看能够通过另一个未登入的浏览器直接访问该功能点。
  2. 使用A用户登陆,然后在另一个浏览器使用B用户登陆,使用B访问A独有的功能,看能否访问。
  1. 除公有资源外,默认情况下拒绝访问非本人所有的私有资源;
  2. 对API和控制器的访问进行速率限制,以最大限度地降低自动化攻击工具的危害;
  3. 当用户注销后,服务器上的Cookie,JWT等令牌应失效;
  4. 对每一个业务请求,都进行权限校验。
3.12 安全配置错误

应用程序缺少适当的安全加固,或者云服务的权限配置错误。

  1. 应用程序启用或安装了不必要的功能(例如:不必要的端口、服务、网页、帐户或权限)。
  2. 默认帐户的密码仍然可用且没有更改。
  3. 错误处理机制向用户披露堆栈跟踪或其他大量错误信息。
  4. 对于更新的系统,禁用或不安全地配置最新的安全功能。
  5. 应用程序服务器、应用程序框架(如:Struts、Spring、ASP.NET)、库文件、数据库等没有进行相关安全配置。
  1. 先对应用指纹等进行信息搜集,然后针对搜集的信息,看相关应用默认配置是否有更改,是否有加固过;端口开放情况,是否开放了多余的端口;

搭建最小化平台,该平台不包含任何不必要的功能、组件、文档和示例。移除或不安装不适用的功能和框架。 在所有环境中按照标准的加固流程进行正确安全配置。

3.13 使用含有已知漏洞的组件

使用了不再支持或者过时的组件。这包括:OS、Web服务器、应用程序服务器、数据库管理系统(DBMS)、应用程序、API和所有的组件、运行环境和库。

  1. 根据前期信息搜集的信息,查看相关组件的版本,看是否使用了不在支持或者过时的组件。一般来说,信息搜集,可通过http返回头、相关错误信息、应用指纹、端口探测(Nmap)等手段搜集。
  2. Nmap等工具也可以用于获取操作系统版本信息
  3. 通过CVE,CNVD等平台可以获取当前组件版本是否存在漏洞
  1. 移除不使用的依赖、不需要的功能、组件、文件和文档;
  2. 仅从官方渠道安全的获取组件(尽量保证是最新版本),并使用签名机制来降低组件被篡改或加入恶意漏洞的风险;
  3. 监控那些不再维护或者不发布安全补丁的库和组件。如果不能打补丁,可以考虑部署虚拟补丁来监控、检测或保护。

网络安全学习路线&学习资源

网络安全的知识多而杂,怎么科学合理安排?

下面给大家总结了一套适用于网安零基础的学习路线,应届生和转行人员都适用,学完保底6k!就算你底子差,如果能趁着网安良好的发展势头不断学习,日后跳槽大厂、拿到百万年薪也不是不可能!

初级网工

1、网络安全理论知识(2天)

①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)

2、渗透测试基础(一周)

①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等

3、操作系统基础(一周)

①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)

4、计算机网络基础(一周)

①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现

5、数据库基础操作(2天)

①数据库基础
②SQL语言基础
③数据库安全加固

6、Web渗透(1周)

①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)

恭喜你,如果学到这里,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web 渗透、安全服务、安全分析等岗位;如果等保模块学的好,还可以从事等保工程师。薪资区间6k-15k

到此为止,大概1个月的时间。你已经成为了一名“脚本小子”。那么你还想往下探索吗?

【“脚本小子”成长进阶资源领取】

7、脚本编程(初级/中级/高级)

在网络安全领域。是否具备编程能力是“脚本小子”和真正黑客的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力.

零基础入门,建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习; 搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP, IDE强烈推荐Sublime; ·Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,不要看完; ·用Python编写漏洞的exp,然后写一个简单的网络爬虫; ·PHP基本语法学习并书写一个简单的博客系统; 熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选); ·了解Bootstrap的布局或者CSS。

8、超级网工

这部分内容对零基础的同学来说还比较遥远,就不展开细说了,贴一个大概的路线。感兴趣的童鞋可以研究一下,不懂得地方可以【点这里】加我耗油,跟我学习交流一下。

网络安全工程师企业级学习路线

如图片过大被平台压缩导致看不清的话,可以【点这里】加我耗油发给你,大家也可以一起学习交流一下。

一些我自己买的、其他平台白嫖不到的视频教程:

需要的话可以扫描下方卡片加我耗油发给你(都是无偿分享的),大家也可以一起学习交流一下。

网络安全学习路线&学习资源

结语

网络安全产业就像一个江湖,各色人等聚集。相对于欧美国家基础扎实(懂加密、会防护、能挖洞、擅工程)的众多名门正派,我国的人才更多的属于旁门左道(很多白帽子可能会不服气),因此在未来的人才培养和建设上,需要调整结构,鼓励更多的人去做“正向”的、结合“业务”与“数据”、“自动化”的“体系、建设”,才能解人才之渴,真正的为社会全面互联网化提供安全保障。

特别声明:

此教程为纯技术分享!本书的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本书的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失!!!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/24 12:09:04

小白程序员转行AI产品经理的必看实战经验分享

本文分享了作者从计算机专业转行AI产品经理的经历&#xff0c;从投递各大互联网公司受挫&#xff0c;意识到AI产品需求旺盛 背景&#xff1a; &#x1f31f;学历&#xff1a;211硕士 &#x1f31f;****专业&#xff1a;计算机专业 &#x1f31f;****性别&#xff1a;男 &#x…

作者头像 李华
网站建设 2026/2/17 5:39:46

Open-Lovable 克隆网页超实用,搭配 cpolar 远程用更香

Open-Lovable 是一款面向前端开发者的开源工具&#xff0c;核心功能是将任意网页克隆为可编辑的 React 应用&#xff0c;还支持多类 AI 模型辅助生成代码&#xff0c;适配新手学习、中小企业原型开发等场景。它的优点很贴合实际需求&#xff1a;拆分代码组件清晰&#xff0c;保…

作者头像 李华
网站建设 2026/2/17 9:48:01

导师推荐 8个一键生成论文工具:本科生毕业论文+开题报告高效写作测评

随着高校教育的不断深化&#xff0c;本科生在毕业论文写作过程中面临的挑战日益增多。从选题构思到文献检索&#xff0c;从框架搭建到内容撰写&#xff0c;每一步都可能成为阻碍进度的“拦路虎”。尤其在AI技术迅速发展的背景下&#xff0c;越来越多的学生开始借助智能工具提升…

作者头像 李华
网站建设 2026/2/20 22:15:45

大数据基于协同过滤算法的图书推荐商城系统爬虫 可视化

目录协同过滤算法在图书推荐系统中的应用数据爬虫设计可视化实现系统架构设计性能优化建议项目技术支持可定制开发之功能亮点源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作协同过滤算法在图书推荐系统中的应用 协同过滤算法分为基于用户的…

作者头像 李华