【安全】Web渗透测试(全流程)_渗透测试学习流程图,2024年最新1-3年网络安全开发工程师面试经验分享

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上网络安全知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip204888 (备注网络安全)
img

正文

3.3 任意文件上传漏洞
  • 漏洞描述

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

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

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

  • 渗透测试

示例:DVWA渗透系列二:Command Injection

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

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

  • 渗透测试
  1. 手动测试,判断是否存在SQL注入,判断是字符型还是数字型,是否需要盲注
  2. 工具测试,使用sqlmap等工具进行辅助测试

示例:DVWA渗透系列七:SQL InjectionDVWA渗透系列八:SQL Injection(Blind)

  • 风险评级:高风险
  • 安全建议
  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. 存储型:DVWA渗透系列十二:XSS(Stored)
  2. 反射型:DVWA渗透系列十一:XSS(Reflect)
  3. DOM型:DVWA渗透系列十:XSS(DOM)
  • 风险评级:高风险
  • 安全建议
  1. 不信任用户提交的任何内容,对用户输入的内容,在后台都需要进行长度检查,并且对【<】【>】【"】【'】【&】等字符做过滤
  2. 任何内容返回到页面显示之前都必须加以html编码,即将【<】【>】【"】【'】【&】进行转义。
3.7 跨站请求伪造漏洞
  • 漏洞描述

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

  • 渗透测试

示例:DVWA渗透系列三:CSRF

  • 风险评级:中风险(如果相关业务极其重要,则为高风险)
  • 安全建议
  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. 一般现在网站没有那种简单可破解的标识,但是如果是跨站认证,单点登录场景中,可能为了开发方便而简化了身份认证

示例:DVWA渗透系列九:Weak Session IDs

  • 风险评级:高风险
  • 安全建议
  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等平台可以获取当前组件版本是否存在漏洞

写在最后

在结束之际,我想重申的是,学习并非如攀登险峻高峰,而是如滴水穿石般的持久累积。尤其当我们步入工作岗位之后,持之以恒的学习变得愈发不易,如同在茫茫大海中独自划舟,稍有松懈便可能被巨浪吞噬。然而,对于我们程序员而言,学习是生存之本,是我们在激烈市场竞争中立于不败之地的关键。一旦停止学习,我们便如同逆水行舟,不进则退,终将被时代的洪流所淘汰。因此,不断汲取新知识,不仅是对自己的提升,更是对自己的一份珍贵投资。让我们不断磨砺自己,与时代共同进步,书写属于我们的辉煌篇章。

需要完整版PDF学习资源私我

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注网络安全)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

,更是对自己的一份珍贵投资。让我们不断磨砺自己,与时代共同进步,书写属于我们的辉煌篇章。**

需要完整版PDF学习资源私我

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注网络安全)
[外链图片转存中…(img-JNhhgxhx-1713465970371)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 10
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值