CTF从入门到提升(一)

  • A+
所属分类:逆向工程

CTF从入门到提升(一)

从今天起我们整理一些CTF的入门文章,还有课件教程并提供下载。希望大家支持。


简介

CTF本来是西方的一种传统运动。在比赛上两军会互相争夺旗帜,当有一方的旗帜已被敌军夺取,就代表了那一方的战败。


信息安全领域的 CTF 是说,通过各种攻击手法,获取服务器后寻找指定的字段,或者文件中某一个固定格式的字段,这个字段叫做 flag,其形式一般为 flag{xxxxxxxx},提交到裁判机就可以得分。


竞赛模式


CTF竞赛模式具体分为以下三类:


解题模式(Jeopardy)


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


攻防模式(Attack-Defense)


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


混合模式(Mix)


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


比赛题型


由于 CTF 的考题范围其实比较宽广,目前也没有太明确的规定界限说会考哪些内容。但是就目前的比赛题型而言的话,主要还是依据常见的 Web 网络攻防、RE 逆向工程、Pwn 二进制漏洞利用、Crypto 密码攻击、Mobile 移动安全 以及 Misc 安全杂项 来进行分类。


Web - 网络攻防


Web 是 CTF 的主要题型,题目涉及到许多常见的 Web 漏洞,如 XSS、文件包含、代码执行、上传漏洞、SQL 注入等。也有一些简单的关于网络基础知识的考察,如返回包、TCP/IP、数据包内容和构造。可以说题目环境比较接近真实环境。且Web题目是国内比较多也是大家比较喜欢的题目。因为大多数人开始安全都是从web渗透测试开始的。


Reverse Engineering - 逆向工程


主要包括了逆向工程中的常见题型、工具平台、解题思路,进阶部分包含了逆向工程中常见的软件保护、反编译、反调试、加壳脱壳技术。


Pwn - 二进制漏洞利用


Pwn 题目主要考察二进制漏洞的发掘和利用,需要对计算机操作系统底层有一定的了解。在 CTF 比赛中它代表着溢出类的题目,其中常见类型溢出漏洞有整数溢出、栈溢出、堆溢出等。主要考查参赛选手对漏洞的利用能力。PWN 题目主要出现在 Linux 平台上。


Crypto - 密码攻击


题目考察各种加解密技术,包括古典加密技术、现代加密技术甚至出题者自创加密技术,以及一些常见编码解码,主要考查参赛选手密码学相关知识点。通常也会和其他题目相结合。


Mobile - 移动安全


主要介绍了安卓逆向中的常用工具和主要问题类型,安卓逆向常常需要一定的安卓开发知识,iOS 逆向题目在 CTF 竞赛中较少出现。


Misc - 安全杂项


Misc 即安全杂项,题目涉及隐写术、流量分析、电子取证、人肉搜索、数据分析、大数据统计等,覆盖面比较广,主要考查参赛选手的各种基础综合知识。


CTF比赛时间表


CTFwiki(入门必看wiki,墙裂推荐!): ctf-wiki.github.io/ctf-

XCTF社区: xctf.org.cn/

CTFrank(你的CTF参赛指南): ctfrank.org/

CTFtime(大型比赛的时间表,基本都是国外的): ctftime.org/


CTF—Web介绍


CTF中的Web题型,就是给定一个Web网站,选手要根据题目所提示的信息,找到网站上的flag字符串。


做题的方法类似于渗透测试,但通常不会是一个完整的渗透测试,而是用到渗透测试中的某一个或某几个环节。可能涉及信息搜集、各类漏洞发现与利用、权限提升等等。


为了获取flag,可能需要拿到管理员权限,数据库权限,甚至获取网站所在服务器的权限。


所需的Web 安全基础知识


1. HTML 基础

2. HTTP协议基础

3. JavaScript 基础

4. PHP 源码审计基础

5. 常见的Web 服务器基础


Apache HTTP Server


Apache HTTP Server 以稳定、安全以及对 PHP 的高效支持而被广泛用于 PHP 语言中,WAMP 或者 LAMP 就是它们组合的简称,即 Windows 或者 Linux 下的 Apache2+Mysql+PHP。


Nginx


Nginx 的特点在于它的负载均衡和反向代理功能,在访问规模庞大的站点上通常使用 Nginx 作为服务器。同样,Nginx 也和 Mysql、PHP 一同构成了 WNMP 和 LNMP 环境。和 Apache 默认将 PHP 作为模块加载不同的是,Nginx 通过 CGI 来调用 PHP。


IIS


IIS 被广泛内置于 Windows 的多个操作系统中,只需要在控制面板中的 Windows 服务下打开 IIS 服务,即可进行配置操作。作为微软的 Web 服务器,它对 .net 的程序应用支持最好,同时也支持以 CGI 的方式加载其他语言。


6. 常见web漏洞


SQL注入

文件包含

XSS漏洞

上传漏洞

代码审计

CSRF

SSRF

命令执行

PHP 弱类型


7. 常用的工具


Sqlmap

BurpSuite

AWVS


附一些教程给大家回去练习:


CTF从入门到提升(一)


需要课件的朋友请在订阅号内回复关键字CTF1105获取


相关书籍推荐


CTF从入门到提升(一)


推荐文章++++

CTF从入门到提升(一)

*「视频」 CTF《5年高考3年模拟》

*CTF-工具包

*CTF神秘大礼包


CTF从入门到提升(一)

CTF从入门到提升(一)

本文始发于微信公众号(黑白之道):CTF从入门到提升(一)

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: