那些漏洞挖掘高手都是怎么挖漏洞的?

前言

说到安全就不能不说漏洞,而说到漏洞就不可避免地会说到三座大山:

漏洞分析 漏洞利用 漏洞挖掘

从个人的感觉上来看,这三者尽管通常水乳交融、相互依赖,但难度是不尽相同的。本文就这三者分别谈谈自己的经验和想法。

在这里插入图片描述

漏洞分析

漏洞分析相对简单,通常公开的漏洞中就有一两句话描述了漏洞的成因,自己拉代码下来看也就能了解个大概。对于一些自己发现的bug,从崩溃日志中一般也能比较轻松地进行复现和调试。尽管有的bug排查起来相对繁琐,但总归是可以一步步减少范围锁定最终目标的。因此,网上对于漏洞分析的文章很多,一方面分析起来有迹可循,另一方面分析的漏洞也不一定是自己的“原创”漏洞,素材来源更加广泛。

漏洞分析虽然简单,却是每个安全研究人员的必经之路。就像练武中的扎马步、站梅花桩一样,是日积月累的基本功。之前研究内核时有段时间热衷于写漏洞分析的文章,后来随着日渐熟练,写文章记录的速度已经远远跟不上分析的进度,所以现在往往懒得动笔了。

基本功必不可少,但扎马步扎得再稳也不表示你能独步武林。有大佬曾经说过,如果他想的话,可以一天写好几篇分析文章还不带重样的。毕竟,漏洞分析的目的是为了学习、吸收、转化,以史为鉴,最终形成自己独到的理解。

漏洞利用

漏洞利用就相对复杂一点,尤其是对于二进制漏洞,成功的利用需要精巧的内存布局,因此需要对程序涉及到的数据结构要相当的了解。而且并不是所有漏洞都能转换为有效利用的,一般比较容易编写利用的漏洞,我们称之为品相好。对于品相不好的漏洞,我更喜欢将其称之为bug。当然也有人认为 bug 至少造成了程序崩溃,所以可以算一个DoS(拒绝服务)漏洞。

当然漏洞能否利用其实也是和人有关。对于复杂的系统,你认为无法利用的漏洞,大佬就能以一种你没想到的方式利用成功。比如安卓CVE-2019-2025(水滴)漏洞,属于Binder中的一个条件竞争,竞争窗口只有几条汇编指令。漏洞品相相当不好,连CVSS给出的可利用分数(Exploitability Score)也只有1.8分,但360的大佬们也通过玩弄调度器进行稳定利用提权了。

因此,关于漏洞利用的文章也就少了很多。一方面处于负责任披露安全问题的考虑,安全研究人员不会给出完整的利用细节,以免脚本小子滥用;另一方面对于公开的利用,你也总不能跟着写一篇文章灌水,毕竟利用思路很多时候是因人而异的,过于雷同就难免有炒冷饭的嫌疑,除非有一些独到的思考补充,或者有新的利用思路。

很多时候漏洞利用的文章看着看着就变成了漏洞利用分析的文章,这也说明了漏洞利用难度颇高,能独立写出原创利用并进行分享的人不多。就我的感觉而言,漏洞利用更像是另一种形式的软件开发,首先通过漏洞构造原语,然后通过原语实现最终的利用程序。

漏洞挖掘

漏洞挖掘可以说是安全研究人员向往的高地之一,不管你分析了多少漏洞,写了多少利用,如果你没有自己挖掘出过原创的漏洞,那你的安全研究生涯就是不完整的。但是漏洞挖掘这事儿并不是确定性的。漏洞分析只要有漏洞肯定能分析清楚,只不过是时间问题;漏洞利用只要不是明显的无法利用,那至少也存在利用成功的可能性。

漏洞挖掘则不然,即便你盯着某个应用使劲挖,也不能保证有结果,说不定对方根本就没有能触发的漏洞。都说世上没有绝对安全的系统,但是相对安全的系统一抓一大把,至少在出问题之前,你是不知道的。
在这里插入图片描述

提升方法

1、收集信息,尽可能的越多越好(主域名、IP段、搜索引擎、GitHub等)。

2、收集好信息后,对收集的信息进行一些扩展,增加信息收集的量(可以用SubDomain工具批量收集厂商域名信息,域名对应IP,数据多了之后,就可以拿来分析域名的真实地址、以及潜在的IP段)。

3、对IP段、子域名等进行大量破解,这里我们要经常收集一些SRC开发常用的端口、以及一些域名的命名习惯(GitHub上面有很多现成的端口,平时收集信息的时候,可以多注意一下)。

4、收集对方的邮箱账号命名习惯(因为好多官方后台都是用内部邮箱账号登录的)

5、一般大厂商主站的漏洞不是很多,挖到漏洞了,也没多少积分,新手遇到这类型站,应该主动绕道,去其他子站看看。

6、逻辑漏洞,这种类型的漏洞非常多,一般各大厂商基本上都存在,有的只是比较隐蔽而已,刚入手的白帽子,有可能觉得这个挖起来比较难,因为这个得对系统有一定的分析了解,不过好的是,这种漏洞一般只要挖洞一个,基本上奖励还是不错的。

7、弱口令、这种漏洞,新入手的白帽子最好提前收集一些弱口令字典,我用的一般是TOP2000。账号收集你可以看他们的邮箱结构,例如:liudehua、liudh、ldh、liudehua+数字等这种格式的账号,遇到只有后台类的系统,大家都可以用收集好的账号+常见的用户名,进行破解。

8、一般发现漏洞之后,可以尝试分析一下漏洞引发的一连串危害,记住一点,弱口令不是仅仅是弱口令问题,有可能系统还存在其他漏洞,这时候我们就可以利用弱口令进入后台之后,分析出他们其他存在的漏洞,例如:上传、注入、逻辑等漏洞,这种的一般危害比较大,被恶意利用了,很容易引发其他的问题。记住:当你们挖到一个弱口令累的漏洞时候,一定不要轻易提交,可以利用弱口令挖掘一些其他的漏洞,如果后台实在没有其他漏洞(有可能也是个人技术问题、挖不到),那你就提交吧(其实也是一种无奈)。

9、底线问题,严于律己,别发现漏洞后,偷偷拿去乱搞。

明确需求,确定方向

网络安全

网络安全 是一个很广的概念,涉及的岗位也是非常多的,有安全服务、安全运维、渗透测试、web安全、安全开发、安全售前等等。可以看看下面每个岗位的要求与自身兴趣能力匹配度再决定最适合自己的方向。

在这里插入图片描述

渗透测试/Web安全工程师

主要是模拟黑客攻击,利用黑客技术,挖掘漏洞,提出修复建议;需要用到数据库、网络技术、编程技术、渗透技术等。

任职要求:

1.熟悉渗透测试步骤、方法、流程,具备独立开展渗透工作的能力;

2.熟练掌握WEB安全和漏洞挖掘,熟悉漏洞的原理、方法、利用手段及解决方案;

3.至少掌握一种编程语言,能编写漏洞检测

或利用工具;

4.了解代码安全审计的流程、方法及主流代码审计工具的使用;

5.具备CISP/CISP-PTE/CISP-PTS等信息安全领域相关证书者优先。

安全运维/安全服务工程师

主要是对安全防御体系的运维和应急响应工作。能够熟练配置安全设备,具有极强日志分析能力。需精通渗透技术、安全设备原理,知识面要求广,实战能力强。

任职要求:

1.熟悉Owasp ****0漏洞原理、攻击、防御;

2.熟悉常见安全设备,并能够基于安全设备进行分析、处置;

3.熟悉linux等操作系统,能够开展应急响应工作;

4.熟悉安全评估流程;

5.熟悉各类安全工具,如漏洞扫描、基线检查等工具;

6.持有信息安全相关证书CISP、CISSP、CISA、ISO27001等优先考虑。

安全开发工程师

规划、设计并建立公司应用安全整体架构,识别应用系统在架构设计、开发测试、发布上线、运行维护各个阶段的安全风险,提出有效解决方案并落地实施,公司内部安全平台的设计与开发,持续开发迭代平台。

任职要求:

1.有IT技术从业工作经验;

2.熟练掌握Python/Go/C/C++等至少一种语言,和主流WEB框架;

3.了解Spring Boot、Spring MVC、Vue、JavaScript等常用的设计模式和开源框架,有扎实的开发或开发管理技术基础,自学能力强;

4.熟悉信息安全相关知识,具有国内外知名网络安全公司工作经验者优先;

5.具有CISD/CISP/CISSP等网络和信息安全相关认证证书者优先。

安全售前工程师

与客户沟通接洽,根据己方产品,设计技术方案,满足甲方安全需求。需精通服务器,网络技术,安全设备,攻防技术,并对安全趋势跟踪紧密,表达能力和文档能力。

任职要求:

1.具有良好的沟通表达能力与文档编写能力;

2.拥有信息安全相关从业经验,有网络安全或数据安全产品实施、维护经验,熟悉Linux常见操作令;

3.熟悉网络安全相关法律法规以及重要标准,如数安法、个保法、等保2.0、ISO27001等;

4.熟悉项目招投标过程,能根据招标书要求,独立编制投标书、参加招投标会,进行技术讲解和答疑;

5.加分条件:具有信息安全类公司技术研发工作经验;具有CISSP、CISA、CISP等信息安全类资质认证。

多种方式,联合发力

以web安全方向为例:

在这里插入图片描述

第一,可以买一本《白帽子讲web安全》来看着先,作者是吴翰清。先了解常见漏洞的原理,没必要研究的太深,因为光看很难理解,后面结合实践来理解事半功倍。

第二,多看一些安全公众号的文章,和一些博客文章,然后可以试着去做一些ctf的题目,可以拓展你的知识面和帮助你理解,几个较好的ctf平台有bugku、xctf,国外的有hackthebox,不过hackthebox难度较大,不建议一上来就去那里。ctf的题目不应该局限于web题目,其他的都可以做一下,毕竟一些安全比赛题目类型很多。

第三,可以去挖一些公益漏洞,挖之前先看别人怎么挖,挖漏洞是有技巧的,多看文章,可以去了解一下src。

第四,学好python,它是最契合网络安全的语言,可以用他来写脚本进行攻击非常nice。当然了如果可以的话,也要学好java,很多漏洞扫描器都是java写的,逆向方向需要java代码审计能力。也要学好网页设计这门课程,都是基础来的。

第五,web安全的最后都是内网渗透,拿下了一个网站,紧接着要拿下的就是他的主机,Linux基础要学好,这个你前面的积累,也是放到最后的一个。

最后

统计数据显示,目前我国网安人才缺口达140万之多…
不管你是网络安全爱好者还是有一定工作经验的从业人员
不管你是刚毕业的行业小白还是想跳槽的专业人员
都需要这份超级超级全面的资料
几乎打败了市面上90%的自学资料
并覆盖了整个网络安全学习范畴
来 收藏它!一定会对你的学习有所帮助!

朋友们如果有需要全套网络安全入门+进阶学习资源包,可以点击免费领取(如遇扫码问题,可以在评论区留言领取哦)~

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

在这里插入图片描述

1.网安必备全套工具包和源码

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.视频教程

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,路线图上的每一个知识点,我都有配套的视频讲解。
在这里插入图片描述

3.技术文档和电子书

技术文档也是我自己整理的,包括我参加护网行动、CTF和挖SRC漏洞的经验和技术要点。
在这里插入图片描述

网安方面的电子书我也收藏了200多本,基本上热门的和经典的我都有,也可以共享。
在这里插入图片描述

4.NISP、CISP等各种证书备考大礼包

在这里插入图片描述

5.信息安全工程师备考大礼包

在这里插入图片描述

6.网安大厂面试题

这几年整理的网安方面的面试题,如果你是要找网安方面的工作,它们绝对能帮你大忙。
在这里插入图片描述
在这里插入图片描述
朋友们如果有需要全套网络安全入门+进阶学习资源包,可以点击免费领取(如遇扫码问题,可以在评论区留言领取哦)~

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spring、SpringBoot、SpringCloud、SpringCloud Alibaba、Elasticsearch版本对应,附下载地址

1、GitHub Alibaba 发布SpringCloud Alibaba和SpringCloud 、SpringBoot版本 Spring Cloud Alibaba VersionSpring Cloud VersionSpring Boot2022.0.0.0-RC2Spring Cloud 2022.0.03.02022.0.0.0-RC1Spring Cloud 2022.0.03.0.02021.0.5.0*Spring Cloud 2021.0.52.6.132021.0.4…

中国人民大学与加拿大女王大学金融硕士--中外合作办学硕士领域的宝藏项目

大多数读研人都知道,从办学方式来看,中外合作办学硕士可以分为两种: 一是双学位教育项目,颁发的是外方高校硕士学位证书,同时还可以申请国内高校的硕士学位证书,同时教育部中留服还可以做学历学位认证。 二…

MyBatis学习笔记——1

MyBatis学习笔记——1 一、MyBatis概述1.1、框架1.2、三层架构1.4、了解MyBatis1.4、ORM思想 二、MyBatis入门程序2.1、Mybatis程序的编写2.2、MyBatis入门程序的一些小细节2.3、MyBatis事务管理机制深度解析2.4、在开发中junit是如何使用的2.5、Mybatis集成日志框架logback 三…

【UE4 塔防游戏系列】08-敌人到达终点对玩家造成伤害

目录 效果 步骤 一、敌人到终点时扣除玩家生命值 二、显示玩家生命值 效果 可以看到敌人进入终点后,左上角的玩家生命值会减少。 步骤 一、敌人到终点时扣除玩家生命值 新建一个Actor蓝图类,命名为“BP_EnemyEndPlace”,用来表示终点…

python实现拼多多商品详情接口API

最近工作需要用到拼多多的一些接口,官方竟然没有提供,python的sdk,于是就自己简单的写了一个商品SKU接口的api。 1、代码 #!/usr/bin/python3# -*- coding: utf-8 -*-# Time : 2020/3/29 0021 下午 19:40# Author : xiaozhi!…

Flutter:EasyLoading(loading加载、消息提示)

前言 官方虽然提供了内置的加载指示器和提示信息,但是功能比较简陋,这里推荐:flutter_easyloading CircularProgressIndicator CircularProgressIndicator()加粗样式 ScaffoldMessenger.of(context).showSnackBar(const SnackBar(// 提示…

浅谈无人机遥感图像拼接与处理方法

遥感(RS-Remote Sensing)——不接触物体本身,用传感器收集目标物的电磁波信息,经处理、分析后,识别目标物,揭示其几何、物理性质和相互关系及其变化规律的现代科学技术。 换言之,即是“遥远的感…

第六章内存保护单元(Cortex-M7 Processor)

目录 第六章内存保护单元 6.1关于MPU 6.2MPU功能描述 6.3MPU编程器模型 第六章内存保护单元 介绍MPU (Memory Protection Unit)。它包含以下部分: 关于第6-2页的MPU。MPU功能描述见第6-3页。MPU程序员模型在第6-4页。 6.1关于MPU MPU是内存保护的可选组件。处理器支持标准…

从MVC跨越到DDD微服务架构是如何演进的

微服务架构演进 领域模型中对象的层次从内到外依次是:值对象、实体、聚合和限界上下文。 实体或值对象的简单变更,一般不会让领域模型和微服务发生大变。但聚合的重组或拆分却可以。因为聚合内业务功能内聚,能独立完成特定业务。那聚合的重组…

解决appium-doctor报ffmpeg cannot be found

一、下载ffmpeg安装包 https://ffmpeg.org/download.html 找到如图所示红框位置点击下载ffmpeg安装包。 二、配置ffmpeg环境变量 三、检查ffmpeg版本信息 重新管理员打开dos系统cmd命令提示符,输入ffmpeg查看是否出现版本信息,安装完好。 ffmpeg

D354周赛复盘:特殊元素平方和+数组最大美丽值(滑动窗口)+合法分割最小下标

文章目录 6889.特殊元素平方和思路完整版取模注意:不能对0取余/取模解答错误:本题的数组最后一个下标是nums[nums.size()] 6929.数组的最大美丽值(排序滑动窗口)思路1:排序滑动窗口注意点 6927. 合法分割的最小下标&am…

7.4Java EE——Bean的作用域

一、singleton作用域 Spring支持的5种作用域 作用域名城 描述 singleton 单例模式。在单例模式下,Spring 容器中只会存在一个共享的Bean实例, 所有对Bean的请求,只要请求的id(或name)与Bean的定义相匹配&#xff0…

css之flex两端对齐,且元素自动换行、flex、flow

文章目录 效果图htmlstyleflex-flow 效果图 html <div class"parent_element"><div class"item">7</div><div class"item">7</div><div class"item">7</div><div class"item"…

vue3 ts vite electron开发桌面程序

1、搭建vuetsvite项目 # 创建Vue项目 npm init vue # 安装依赖 npm install # 一定要安装成开发依赖 npm install electron electron-builder -D 根目录创建plugins文件夹&#xff0c;文件夹中创建ts文件&#xff0c;vite.electron.build.ts是打包文件代码&#xff0c;v…

spring复习:(22)实现了BeanNameAware等Aware接口的bean,相应的回调方法是在哪里被调用的?

AbstractAutowireCapableBeanFactory的doCreateBean用来创建bean, 其中调用了initializeBean方法对bean进行初始化 initializeBean包含如下代码&#xff1a; 而invokeAwareMethods代码如下&#xff1a; 可见其分别判断是否实现了BeanNameAware接口、BeanClassLoaderAware接口…

【java】【基础2】程序流程控制

目录 一、最经典的三种执行顺序 二、分支结构 2.1 if 2.2 switch 2.3 if与switch区别 三、循环结构 3.1 for循环 3.2 while循环 3.3 do-while循环 3.4 三种循环区别 3.5 补充知识&#xff1a;死循环 3.6 补充知识&#xff1a;循环嵌套 四、跳转关键字&#xff1a;br…

win7系统电脑怎么在桌面上悬挂工作日程安排清单显示呢?

在现代快节奏的工作环境中&#xff0c;合理安排和管理工作日程是非常重要的。而在电脑桌面上悬挂工作日程安排清单显示&#xff0c;可以让我们随时了解自己的任务和工作进度&#xff0c;提高工作效率。那么&#xff0c;如何在Win7系统电脑上实现这一功能呢&#xff1f; 今天我…

华为云ROMA Connect 的智能集成 – 现代企业数字化转型的新利器

在当今数字信息智能化的时代&#xff0c;人工智能技术逐渐深入企业的生产流程和实践中。人工智能的应用成为现代企业数字化转型的新利器。华为云的ROMA Connect作为企业级的融合集成服务 EiPaaS平台&#xff0c;从今年开始也进入了人工智能技术&#xff0c;针对几个主要的企业集…

selenium测试框架快速搭建(UI自动化测试)

一、介绍 selenium目前主流的web自动化测试框架&#xff1b;支持多种编程语言Java、pythan、go、js等&#xff1b;selenium 提供一系列的api 供我们使用&#xff0c;因此在web测试时我们要点页面中的某一个按钮&#xff0c;那么我们只需要获取页面&#xff0c;然后根据id或者na…

线程池学习(二)execute() 和 submit() 的区别

转载&#xff1a;线程池 线程提交的两种方式 ExecutorService poll3 Executors.newCachedThreadPool();for (int i 0; i < 2; i) {poll3.execute(new TargetTask());poll3.submit(new TargetTask());}execute方法 void execute(Runnable command): Executor接口中的方法s…