首页 > 其他分享 >零基础如何学习挖漏洞?零基础入门到精通,收藏这一篇就够了

零基础如何学习挖漏洞?零基础入门到精通,收藏这一篇就够了

时间:2024-09-20 09:53:59浏览次数:11  
标签:web 入门 基础 就够 学习 漏洞 SQL 工具 调试

点击蓝字 关注我们

本栏目收录了【中国电信研究院安全技术研究所】在知乎平台关于安全问题的部分优质回答。

在开始学习、研究漏洞之前,务必熟读

《中华人民共和国网络安全法》!!!

研究漏洞首先要对漏洞类型有一个大致的了解,根据工作需要或个人兴趣先选择一个方向深入学习,而不是面面俱到。因为针对不同类型的漏洞,其学习方法、技术栈和工具等有着巨大差异。选择好一个方向后,通过大量的实战不断积累经验、总结提高,终会有所成就。

漏洞的分类

目前一般将漏洞大致分为以下两类:

(一) web漏洞

以网页为主,主要研究包括web服务器(如 Apache、Tomcat、IIS、Nginx等)、中间件(Weblogic、Webshere、Glasshfish等)及web应用程序的漏洞。

常见的web漏洞主要有:XSS攻击、文件包含、文件上传、SQL注入、CSRF、SSRF、逻辑漏洞、敏感信息泄露、弱口令等。

(二) 二进制漏洞

主要研究操作系统(如Windows漏洞、Linux)、以及操作系统上的各种应用软件的漏洞(如office、WPS等办公软件、VPN客户端、浏览器等),偏重硬件底层。

常见的二进制漏洞主要有:栈溢出漏洞、堆溢出、整数溢出、格式化字符串、双重释放漏洞、释放后重引用漏洞(Use After Free)、内核漏洞、数组越界漏洞等。

以下从基础知识、使用的工具、学习方法与路线、学习资料几个方面谈谈以上两种不同类型漏洞学习方法和思路。

Web漏洞挖掘

(一) 基础知识

学习web漏洞挖掘首先要熟悉Web开发的一些基础知识,主要包括:

  • **前端相关知识:**HTML、CSS、JavaScript及PHP,能够认识基本的语句、逻辑,掌握语言的基本特性。

  • **网络协议相关知识:**熟悉HTTP、TCP/IP、以及其他的应用层协议。

  • **数据库相关知识:**MySQL,SQL server,Oracle、mongodb等主流数据库,掌握常见的数据库指令及语句。

  • **编程语言:**熟练掌握并使用java、go、python等主流的编程语言,熟悉基本的编程与调试技术。

(二)使用的工具

工欲善其事,必先利其器。web漏洞学习过程中借助一些工具能够提高工作效率和成功率。以下介绍几款学习web安全必须掌握的工具:

1. SQLMap

SQLMap使用一个自动化的SQL注入工具,其主要功能是扫描、发现并利用给定的URL的SQL注入漏洞,内置了很多的绕过插件,支持的数据库有:MySQL、Oracle、PostgreSQL、Microsoft SQL Server、SQLite等,采用基于布尔类型的盲注、基于时间的盲注、基于报错的盲注、联合查询注入以及堆查询注入等5种SQL注入技术。

2. Namp

Namp是一款开放源代码的网络探测和安全审核工具。它被设计用来快速扫描大型网络,包括主机探测与发现、开放端口情况、操作系统与应用服务指纹识别、WAF识别及常见的安全漏洞。

3. Burpsuit

Burpsuit是一款集成化的渗透测试工具,包含了很多的功能,可以帮助我们高效完成对web应用程序的渗透测试和攻击。其由Java语言编写,可跨平台。

4. 其他工具

kali、漏洞扫描工具、渗透测试框架(MSF、Goby、Xray等)、webshell工具,如果编程能力较强也可以在学习过程中开发自己的工具并在学习中不断积累,收集一些优秀的第三方工具。

(三)漏洞挖掘方法

1. 了解常见漏洞原理

web漏洞常见的类型主要有:XSS攻击、文件包含、文件上传、SQL注入、CSRF、SSRF、逻辑漏洞等。学习历史漏洞来掌握各种web漏洞形成的原因、漏洞利用工具的编写技巧以及常用工具的熟练应用,是入门学习web安全及漏洞挖掘的第一步。使用本地或第三方的靶场环境进行漏洞的复现验证及原理分析,编写PoC或EXP进行测试。以下是几个常见的web靶场环境:

  • OWASP TOP 10:

    开放式Web应用程序安全项目(OWASP,Open Web Application Security Project)是一个非营利组织,不附属于任何企业或财团,它提供有关计算机和互联网应用程序的公正、实际、有成本效益的信息。

    其目的是协助个人、企业和机构来发现和使用可信赖软件。OWASP虚拟机,里面含有各种具有已知漏洞的应用程序,可以帮助研究人员快速开展web漏洞的研究。

  • DVWA

    :DVWA(Damn Vulnerable Web Application)是一个用来进行安全脆弱性鉴定的PHP/MySQL Web 应用,旨在为安全专业人员测试自己的专业技能和工具提供合法的环境,帮助web开发者更好的理解web应用安全防范的过程。包括了XSS、SQL注入、文件上传等10多种类型的web攻击,每一种类型可设置为:Low,Medium,High,Impossible,级别越高,安全防护越严格,渗透难度越大。

  • Vulhub

    Vulhub是一个基于docker和docker-compose的漏洞环境集合,进入对应目录并执行一条语句即可启动一个全新的漏洞环境,让漏洞复现变得更加简单,让安全研究者更加专注于漏洞原理本身。Vulhub是一个面向大众的开源漏洞靶场,无需docker知识,简单执行两条命令即可编译、运行一个完整的漏洞靶场镜像。

  • Upload-lab:

    Upload-labs是一个帮你总结所有上传漏洞类型的靶场,学习上传漏洞原理,复现上传漏洞必备靶场环境。

  • SQL-lab:

    sqli-labs是一款学习SQL注入的开源平台,共有75种不同类型的注入。

2. 通过实战提高

当熟悉了常见的web漏洞形成的原理及漏洞利用方式之后,需要在实战中磨练技能、积累经验。比如可以参加CTF比赛、公益的SRC等互动提高实战技术水平。

3. 漏洞挖掘技术

除了以上常规的渗透测试来挖掘漏洞之外,可以学习安全审计、白盒测试、黑盒测试、代码审计等技术来提高漏洞挖掘的效率。

(四)书籍推荐

《Web 安全攻防》、《白帽子讲web安全》、《web前端黑客技术揭秘》、《图解HTTP》、《TCP/IP详解》、《HTTP权威指南》、《SQL注入攻击与防御(第2版)》、Web安全深度剖析》、《Web应用安全权威指南》。

二进制漏洞挖掘

二进制漏洞挖掘的对象一般是操作系统如Windows、Linux等,以及常见的客户端软件如办公软件类office、浏览器chrome/edge/Firefox等为主。

(一)基础知识

  • **汇编:**汇编是进行软件逆向分析的基石,需要掌握基本指令,如寻址方式、跳转及条件判断、循环等。

  • C/C++基础**:**掌握指针、虚函数、继承等概念以及函数传参的方式,内存管理,能够开发。

  • **操作系统:**了解系统架构、关键组件、PE/ELF文件格式、DLL机机制、中断与异常、内存管理等知识,以及操作系统系统的安全机制,如Windows中的GS、DEP、ASLP、SE和等。

  • **软件逆向:**认识数据在内存中的表现形式、认识常见变成语言的启动函数,能够找到程序的入口点、观察表达式、流程控制语句,认识变量、数组、指针、结构体、类等数据类型在内存中的形式。以及加壳、混淆等、反调试等技术。

(二)使用的工具

在研究二进制漏洞时需要分析软件运行机理,主要以逆向技术和调试技术为主。软件逆向分析技术成为二进制漏洞学习之路上最大的障碍,这也使得二进制漏洞挖掘学习成本增加。以下是一些常用的逆向及调试工具:

  • IDA pro:

    一款交互式反汇编工具,它功能强大、操作复杂。

    需要熟练其快捷键、常用的插件等。

  • Ollydbg:

    OllyDbg是一种具有可视化界面的32位汇编分析调试器,是一个Ring3级调试器,非常容易上手。

    同时还支持插件扩展功能,是目前最强大的调试工具。

  • X64dbg:

    x64_dbg是一款windows系统下非常优秀的64位调试器,与“OllyDbg”十分相似。

    软件具有简洁的界面以及强大的功能,提供了类似C的表达式解析器、全功能的DLL和EXE文件调试、IDA般的侧边栏与跳跃箭头、动态识别模块和串、快反汇编、可调试的脚本语言自动化等多项实用功能。

  • WinDbg

    **:**WinDbg是微软发布的一款免费而十分强大的调试工具。Windows 调试器可用于调试内核模式和用户模式代码,来分析故障转储,并检查代码时 CPU 寄存器执行,同时也是一款相当优秀的源码级调试工具。

  • GDB:

    GDB(GNU Debugger)是UNIX及UNIX-like下的强大调试工具,可以调试ada, c, c++, asm, minimal, d, fortran, objective-c, go, java,pascal等语言。

    本文以C程序为例,介绍GDB启动调试的多种方式。

  • 其他工具:

    PE/ELF文件格式解析工具、PE文件解析工具、查壳/脱壳工具、 进程监控工具、流量检测工具等 。

(三)漏洞挖掘的方法

1. 明确目标

明确目标即你将要选择什么作为你漏洞挖掘的对象,是操作系统还是应用软件?根据工作的需求及个人偏好先确定目标,然后进行大量分析训练,不断积累经验。比如,可以选择Windows内核漏洞、office漏洞或者chrome、edge等浏览器的漏洞。

2. 信息收集

勿在浮沙筑高台。想要挖掘某软件的漏洞,首先第一步是对该软件在历史上出现过哪些重大的漏洞有清晰的认识。因此当明确了目标之后就开始对该目标的历史漏洞信息进行梳理,包括:软件的安装版本、漏洞复现的环境限制、漏洞详细信息、他人复现的漏洞分析报告,以及最主要的是收集漏洞的POC、EXP及漏洞利用样本。

3. 漏洞分析

当具备了分析漏洞所需的基本条件之后,开始搭建漏洞复现环境,利用POC/EXP对漏洞进行复现;然后对漏洞进行调试,详细分析漏洞形成原因,并尝试编写漏洞利用的程序。务必做到对每个漏洞的原理、利用方式都如数家珍。

4. 漏洞挖掘

经过一段时间的训练,对某类软件的漏洞成因等有了深刻的认识之后,就可以进行此类软件的漏洞挖掘,掌握一些常用的漏洞挖掘方法:补丁比较、污点追踪、模糊测试等提高效率。

(四)书籍推荐

《IDA Pro权威指南》、《C++反汇编与逆向技术揭秘》、《漏洞战争:软件漏洞分析精要》、《0day安全:软件漏洞分析技术》、《加密与解密》。

为了帮助大家更好的学习网络安全,我给大家准备了一份网络安全入门/进阶学习资料,里面的内容都是适合零基础小白的笔记和资料,不懂编程也能听懂、看懂这些资料!

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

[2024最新CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享]


在这里插入图片描述

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

[2024最新CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享]
在这里插入图片描述

在这里插入图片描述

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

[2024最新CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享]

标签:web,入门,基础,就够,学习,漏洞,SQL,工具,调试
From: https://blog.csdn.net/Javachichi/article/details/142376493

相关文章

  • JavaScript语法入门8 JavaScript中的三种引号
    JavaScript中三种引号,分别是单引号(’xx’)、双引号("xx”)、反引号(`xx`)。三种引号中,单引号和双引号的作用是相同的,用于定义字符串。而反引号是一种扩展功能。单引号、双引号单引号、双引号包裹起来的值是字符串,按照惯例,单引号或者双引号必须成对使用,不能交叉使用。 正确示例:letnam......
  • 故障测试入门指南
    混沌工程与故障测试混沌工程与故障测试在目的、实施方式和测试环境等方面有明显差异。混沌工程的目标是通过在生产环境中引入随机和不可预见的故障,验证系统在实际运行时的鲁棒性和自愈能力,强调系统在异常情况下能否正常恢复。其实验往往持续进行,旨在不断优化系统的稳定性。故障测......
  • 多少岁转行网络安全不算晚?零基础想跳槽(转行)网络安全,看这篇就够了
    奉劝所有零基础想入门(转行)网络安全的朋友,麻烦转行前,一定要对网络安全行业做一个大概了解,不要一点都不懂就盲目转行。网络安全是什么?网络安全就是保障网络环境里的信息、数据安全,今年西北工业大学遭受网络攻击,武汉地震监测中心遭受网络攻击,便是典型的网络安全事件,一个国家......
  • 学习CentOs我们必备入门基础知识
    目录前言一、文件系统结构二、命令行操作三、软件包管理四、系统监控与管理五、用户与权限管理六、网络配置与管理七、系统安全与维护八、系统启动与关机总结前言CentOS(CommunityEnterpriseOperatingSystem)是一个基于RedHatEnterpriseLinux(RHEL)的开源操作系统......
  • 前端开发需要了解的网络基础
    常见的http请求方式GET:从服务器获取数据,参数通常在URL中传递。POST:向服务器发送数据,通常用于创建或更新资源,数据在请求体中传递。PUT:更新现有资源,通常需要提供完整的资源数据。PATCH:部分更新资源,只需提供要修改的字段。DELETE:删除指定资源。HEAD:获取响应头,通常用于检查资源......
  • C#|.net core 基础 - 扩展数组添加删除性能最好的方法
    今天在编码的时候遇到了一个问题,需要对数组变量添加新元素和删除元素,因为数组是固定大小的,因此对新增和删除并不友好,但有时候又会用到,因此想针对数组封装两个扩展方法:新增元素与删除元素,并能到达以下三个目标:1、性能优异;2、兼容性好;3、方便使用;这三个目标最麻烦的应该就是性......
  • 地大信息基础信息平台 GetImg 任意文件读取漏洞
     0x01阅读须知        技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用......
  • fastson与jackson入门
    一,简介json:JavaScriptObjectNotation,JS对象简谱。官网:JSON官网二,使用场景网络传输​描述同样的信息,json相比xml占用更少的空间,<?xmlversion="1.0"encoding="uTF-8"?><person> <id>1</id> <name>张三</name> <age>30</age&......
  • 网络安全简单入门与扫描
    目录网络安全简单入门内容大纲1、安全策略1.1、安全三要素1.2、安全评估1.2、一般流程2、安全工具(漏洞扫描器)2.1、AppScan2.2、Acunetix3、其他3.1、关于工具的问题3.2、银弹理论3.3、原理4、结尾回到顶部网络安全简单入门回到顶部内容大纲策略制定安全工具其他回......
  • HTML基础和常用标签
    “合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。”文章目录前言文章有误敬请斧正不胜感恩!1.HTML的基本结构解释:2.常见标签的介绍2.1标题和文本2.2链接和图片2.3列表2.4表格2.5表单2.6其他常用标签3.HTML5新标签(语义化标签)4.HTML注释5.查阅文档......