腾讯三面被问到有没有参加过CTF?我反手就是一套军体拳打得面试官哑口无言!

Posted 李志宽

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了腾讯三面被问到有没有参加过CTF?我反手就是一套军体拳打得面试官哑口无言!相关的知识,希望对你有一定的参考价值。

目录

前言:

正文:

什么是CTF?

什么是PWN?

为什么要学CTF?

CTF竞赛模式:

CTF各大题型简介:

学之前的思考:分析赛题情况

常规做法

CTF比赛需要的知识储备

CTF比赛的神器:

恶补基础知识&信息安全专业知识推荐图书:


前言:

这是一场紧张的比赛,现场激情解说:

“SP的战队率先发起攻击,可惜被K&K战队以三行代码轻松拦截!”

“哇哦,SP战队依旧紧追猛打,在几秒之内就找到了对方漏洞所在,极速完胜对手!”

“天哪,SP战队再次找到K&K服务器防御漏洞!”

电视剧为了渲染效果,喜欢把CTF搞得跟电子竞技比赛一样,如果你真以为CTF比赛就是电视剧中“现男友”展现的这样:

图片

还有这样:

图片

那就大错特错了!CTF比赛并不是一个电竞项目,真实的CTF是这样的:

图片

(图片来源于XNUCA比赛现场图)

真正的CTF赛事与一般的电竞赛事相比较具有更高的专业性和技术性,CTF赛事本身具有一定的门槛性。

CTF,它最初的源头是全球黑客大会。这也就是说,参加比赛的选手,不是职业电竞选手,而是真正的职业竞技黑客,他们比拼的是各自作为黑客的技术。

如果说电竞选手是在规定好的框架内比拼技术,而黑客却是能够突破程序限制,自由攻占服务器的游戏制定者。

 

正文:

什么是CTF?

CTF(Capture The Flag)中文一般译作夺旗赛,在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。

图片

CTF起源于1996年DEFCON全球黑客大会,以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式。发展至今,CTF已经成为全球范围网络安全圈流行的竞赛形式。而DEFCON作为CTF赛制的发源地,DEFCON CTF也成为了目前全球最高技术水平和影响力的CTF竞赛,类似于CTF赛场中的“世界杯” 。


什么是PWN?

PWN在黑客俚语中代表着攻破,获取权限,发音类似“砰”,对黑客而言,这就是成功实施黑客攻击的声音——的一声,被“黑”的电脑或手机就被你操纵了。“PWN”自“own”这个字引申出来,这个词的含意在于,玩家在整个游戏对战中处在胜利的优势,或是说明竞争对手处在完全惨败的情形下。有一个非常著名的国际赛事叫做Pwn2Own。

图片

在CTF比赛中它代表着溢出类的题目,其中常见类型溢出漏洞有整数溢出、栈溢出、堆溢出等。主要考查参赛选手对漏洞的利用能力。所需基础:大学计算机基础、c语言、汇编语言、操作系统等。

CTF中的PWN题型通常会直接给定一个已经编译好的二进制程序(Windows下的EXE或者Linux下的ELF文件等),然后参赛选手通过对二进制程序进行逆向分析和调试来找到利用漏洞,并编写利用代码,通过远程代码执行来达到溢出攻击的效果,最终拿到目标机器的shell夺取Flag。

 

为什么要学CTF?

1.刺激!成就感爆棚

“惊退万人争战气”“衔得锦标第一归”!当你夺得“一血”拿下比分,完美突破对手的防线,成功抵御“敌人”的进攻,这种来自竞技的魅力让人热血沸腾。如果想感受竞技比赛的刺激、体会技能比拼的成就感和趣味性,CTF就是一个很好的选择。

2.合理合法的练习环境

随着《网络安全法》的公布,实网安领域刚入门的小白越来越难找到真实、合法的环境来训练自己的技能。CTF的出现,正好弥补了这个空白,为大家提供了一个合理又合法的练习环境。

3.拓展安全知识面

CTF的题目一般由多个知识点相互糅合,相对来说目标性比较强。CTF对网安人员的意义还在于拓展了从业者安全知识面,以及获得通过实战式应用所学到的安全知识。工作中遇到的有些问题可以用 CTF中涉及的知识解决。

4.奖金丰厚

CTF赛事的奖金很可观。打CTF比赛不仅能挣钱,还能充分展示自己的技术水平,树立个人在网安业界的影响力。

图片

国内部分CTF奖金设置(数据来源于网络)

5.名企招聘看重的经历

目前,相关企业招聘普遍看重CTF大赛获奖经历,安全名企大厂也经常会通过组织CTF竞赛发现人才,收揽人才

图片

图片

图片

下定决心想要学习CTF,那么要怎么开始呢?

 

CTF竞赛模式:


(1)解题模式(Jeopardy)在解题模式CTF赛制中,参赛队伍可以通过互联网或者现场网络参与,这种模式的CTF竞赛与ACM编程竞赛、信息学奥赛比较类似,以解决网络安全技术挑战题目的分值和时间来排名,通常用于在线选拔赛。题目主要包含逆向、漏洞挖掘与利用、Web渗透、密码、取证、隐写、安全编程等类别。


(2)攻防模式(Attack-Defense)在攻防模式CTF赛制中,参赛队伍在网络空间互相进行攻击和防守,挖掘网络服务漏洞并攻击对手服务来得分,修补自身服务漏洞进行防御来避免丢分。攻防模式CTF赛制可以实时通过得分反映出比赛情况,最终也以得分直接分出胜负,是一种竞争激烈,具有很强观赏性和高度透明性的网络安全赛制。在这种赛制中,不仅仅是比参赛队员的智力和技术,也比体力(因为比赛一般都会持续48小时及以上),同时也比团队之间的分工配合与合作。


(3)混合模式(Mix)结合了解题模式与攻防模式的CTF赛制,比如参赛队伍通过解题可以获取一些初始分数,然后通过攻防对抗进行得分增减的零和游戏,最终以得分高低分出胜负。采用混合模式CTF赛制的典型代表如iCTF国际CTF竞赛。

 

CTF各大题型简介:


MISC(安全杂项):全称Miscellaneous。题目涉及流量分析、电子取证、人肉搜索、数据分析、大数据统计等等,覆盖面比较广。我们平时看到的社工类题目;给你一个流量包让你分析的题目;取证分析题目,都属于这类题目。主要考查参赛选手的各种基础综合知识,考察范围比较广。

PPC(编程类):全称Professionally Program Coder。题目涉及到程序编写、编程算法实现。算法的逆向编写,批量处理等,有时候用编程去处理问题,会方便的多。当然PPC相比ACM来说,还是较为容易的。至于编程语言嘛,推荐使用Python来尝试。这部分主要考察选手的快速编程能力。

CRYPTO(密码学):全称Cryptography。题目考察各种加解密技术,包括古典加密技术、现代加密技术甚至出题者自创加密技术。实验吧“角斗场”中,这样的题目汇集的最多。这部分主要考查参赛选手密码学相关知识点。

REVERSE(逆向):全称reverse。题目涉及到软件逆向、破解技术等,要求有较强的反汇编、反编译扎实功底。需要掌握汇编,堆栈、寄存器方面的知识。有好的逻辑思维能力。主要考查参赛选手的逆向分析能力。此类题目也是线下比赛的考察重点。

STEGA(隐写):全称Steganography。隐写术是我开始接触CTF觉得比较神奇的一类,知道这个东西的时候感觉好神奇啊,黑客们真是聪明。题目的Flag会隐藏到图片、音频、视频等各类数据载体中供参赛选手获取。载体就是图片、音频、视频等,可能是修改了这些载体来隐藏flag,也可能将flag隐藏在这些载体的二进制空白位置。有时候需要你侦探精神足够的强,才能发现。此类题目主要考查参赛选手的对各种隐写工具、隐写算法的熟悉程度。实验吧“角斗场”的隐写题目在我看来是比较全的,以上说到的都有涵盖。新手盆友们可以去了解下。

PWN(溢出):PWN在黑客俚语中代表着攻破,取得权限,在CTF比赛中它代表着溢出类的题目,其中常见类型溢出漏洞有栈溢出、堆溢出。在CTF比赛中,线上比赛会有,但是比例不会太重,进入线下比赛,逆向和溢出则是战队实力的关键。主要考察参数选手漏洞挖掘和利用能力。

WEB(web类):WEB应用在今天越来越广泛,也是CTF夺旗竞赛中的主要题型,题目涉及到常见的Web漏洞,诸如注入、XSS、文件包含、代码审计、上传等漏洞。这些题目都不是简单的注入、上传题目,至少会有一层的安全过滤,需要选手想办法绕过。且Web题目是国内比较多也是大家比较喜欢的题目。因为大多数人开始安全都是从web日站开始的。

 

学之前的思考:分析赛题情况

PWN、Reserve偏重对汇编、逆向的理解

Crypto偏重对数学、算法的深入学习

Web编程对技巧沉淀、快速搜索能力的挑战

Misc则更为复杂,所有与计算机安全挑战有关的都算在其中

 

常规做法

A方向:PWN+Reserver+Crypto随机搭配

B方向:Web+Misc组合

其实Misc所有人都可以做

 

CTF比赛需要的知识储备

前锋攻击(漏洞利用脚本 python)

  • 漏洞利用,成功利用漏洞并突破安全防御机制
  1. 漏洞利用后果:控制劫持流、敏感信息泄露、可用性破坏
  2. 夺取Flag:控制流劫持并执行Shellcode,获得shell(拿到控制台)或读flag到socket
  3. 破坏服务可用性:服务漏洞利用造成服务状态异常 安全防御机制:NX(DEP)、PIE 、ASLP、Stack Canary
  4. 漏洞利用技术:ROP、结合地址泄露漏洞等,/brute forcing、SEH Exploit

掌握二进制代码【木马 shellcode powershell】
漏洞利用脚本编写,远程触发漏洞
python pwn tools
web的机制 php js html

中场(逆向分析,代码审计)

  • web漏洞挖掘能力
    代码审计(检查源码,文件包含错误,执行文件错误,文件上传错误,SQL注入的问题)
    调试环境
  • pwn漏洞挖掘
    逆向分析(el文件,读汇编,读伪代码,反着看c++,java,c)
    Linux系统知识

后卫(安全运维人员)

  • 服务器安全运维人员
    shell 脚本编写能力
    python脚本编写能力
    Linux运维的知识(保证服务器安全,防止木马,分析流量,备份数据库,备份服务器
  • 流量分析能力
    协议分析

CTF比赛的神器:


前锋

  • kali系统

  • nmap 端口扫描
  • searchsploit 漏洞查询
  • metaspolit 攻击框架 use exploit/windows/smb/ms17_010_eternalblue
  • sqlmap sql注入的批量扫描
  • hydra ssh暴力破解
  • burpsuite sql注入的批量扫描
  • python的pwntools (前锋人员使用,漏洞利用) kail装pip install pwntools

中场
逆向分析

  • ida pro ----kpathch插件
  • gdb 以及插件 gef peda-gdb gdbserver (apt-get install gdbserver)
  • notepad++
  • ue winhex

流量分析

  • wireshark
  • pcap python lib
  • 秘密武器

后卫
安全运维人员

  • 文件监控武器

  • 权限检索武器

  • 木马查杀武器

  • 批量攻击框架

  • 木马

  • 菜刀(管理webshell)

图片

恶补基础知识&信息安全专业知识
推荐图书:

A方向:

RE for Beginners(逆向工程入门)

IDA Pro权威指南

揭秘家庭路由器0day漏洞挖掘技术

自己动手写操作系统

黑客攻防宝典:系统实战篇

B方向:

Web应用安全权威指南

Web前端黑客技术揭秘

黑客秘籍——渗透测试使用指南

黑客攻防宝典WEB实战篇

代码审计:企业级Web代码安全架构

图片

最后,祝大家早日学有所成,拿到满意offer,快速升职加薪,走上人生巅峰。

可以的话请给我一个三连支持一下我~~

【资料获取】

 

以上是关于腾讯三面被问到有没有参加过CTF?我反手就是一套军体拳打得面试官哑口无言!的主要内容,如果未能解决你的问题,请参考以下文章

阿里三面居然被问到HTML?? 我:那就不好意思了...

面试Java初级开发被问到Java内部类,反手一套组合拳打的面试官五体投地

阿里P7三面被这10个SpringCloud微服务问题难倒,杯具!

二面百度被问到Spring Boot 能不能用 Jar 包启动?面试官反手给我pass了

反客为主360三面竟然被问到怎么日卫星?我:想学阿,我教你阿!

腾讯一面被问到内存满了,会发生什么?