网络安全:CTF入门必备之题型介绍_ctf网络安全大赛

比如:vim的备份文件

常规文件

比如:

  • robots.txt:记录一些目录和CMS版本信息。
  • readme.md:记录CMS版本信息,有的甚至有Github地址。
Banner识别

一个网站的Banner信息(服务器对外显示的一些基础信息)对解题有着十分重要的作用,选手往往可以通过Banner信息来获得解题思路,如得知网站是用ThinkPHP的Web框架编写时,我们可以尝试ThinkPHP框架的相关历史漏洞。

SQL注入

而由于开发者在程序编写过程中,对传入用户数据的过滤不严格,将可能存在的攻击载荷拼接到SQL查询语句中,再将这些查询语句传递给后端的数据库执行,从而引发实际执行的语句与预期功能不一致的情况。这种攻击被称为SQL注入攻击。

SQL注入漏洞也是现实场景下最常见的漏洞类型之一。

SQL注入,包括数字型注入、UNION注入、字符型注入、布尔盲注、时间注入、报错注入和堆叠注入等注入方式。

任意文件读取漏洞

所谓文件读取漏洞,就是攻击者通过一些手段可以读取服务器上开发者不允许读到的文件。

文件读取漏洞常常意味着被攻击者的服务器即将被攻击者彻底控制。

SSRF漏洞

SSRF(Server Side Request Forgery,服务端请求伪造)是一种攻击者通过构造数据进而伪造服务器端发起请求的漏洞。因为请求是由内部发起的,所以一般情况下,SSRF漏洞攻击的目标往往是从外网无法访问的内部系统。

SSRF漏洞形成的原因多是服务端提供了从外部服务获取数据的功能,但没有对目标地址、协议等重要参数进行过滤和限制,从而导致攻击者可以自由构造参数,而发起预期外的请求。

命令执行漏洞

通常情况下,在开发者使用一些执行命令函数且未对用户输入的数据进行安全检查时,可以注入恶意的命令,使整台服务器处于危险中。

XSS漏洞

跨站脚本(Cross-Site Scripting,XSS)是一种网站应用程序的安全漏洞攻击,是代码注入的一种,允许恶意用户将代码注入网页,其他用户在观看网页时会受到影响。

根据XSS漏洞点的触发特征,XSS可以粗略分为反射型XSS、存储型XSS。

反射型XSS通常是指恶意代码未被服务器存储,每次触发漏洞的时候都将恶意代码通过GET/POST方式提交,然后触发漏洞。

存储型XSS则相反,恶意代码被服务器存储,在访问页面时会直接被触发(如留言板留言等场景)。

Web文件上传漏洞

文件上传在Web业务中很常见,如用户上传头像、编写文章上传图片等。在实现文件上传时,如果后端没有对用户上传的文件做好处理,会导致非常严重的安全问题,如服务器被上传恶意木马或者垃圾文件。

二、二进制类题目

移动端题目

CTF中的移动端题目普遍偏少,Android类的题目主要偏向杂项(Misc)和逆向(Reverse)。

前者通常根据Android系统特性隐藏相关数据,考察参赛者对系统特性的熟悉程度;

后者主要考察参赛者的Java、C/C++逆向能力,出题人常常会加入混淆(ollvm等)、加固、反调试等技术,以增加应用的逆向难度。这类题目往往需要参赛者具备一定的逆向和开发能力,熟悉常用调试逆向工具,知道常见反调试及加壳脱壳方法。

在CTF中,逆向工程一般是指软件逆向工程,即对已经编译完成的可执行文件进行分析,研究程序的行为和算法,然后以此为依据,计算出出题人想隐藏的flag。

一般,CTF中的逆向工程题目形式为:程序接收用户的一个输入,并在程序中进行一系列校验算法,如通过校验则提示成功,此时的输入即flag。

静态分析

逆向工程的最基本方法是静态分析,即不运行二进制程序,而是直接分析程序文件中的机器指令等各种信息。目前,静态分析最常用的工具是IDA Pro。

动态分析

所谓动态分析,就是将程序实际运行起来,观察程序运行时的各种行为,从而对程序的功能和算法进行分析。这需要被称为调试器的软件,调试器可以在程序运行时观察程序的寄存器、内存等上下文信息,还可以让程序在指定的地址停止运行等。

二进制代码保护和混淆

在现实生活中,攻与防的博弈无处不在。为了防止自己编写的二进制程序被逆向分析,许多软件会采取各种手段,为程序加上重重壁垒。

二进制代码的保护手段种类繁多,且运用极其灵活,例如:对汇编指令进行一定程度的混淆变换,可以干扰静态分析中的反汇编过程;在程序中穿插各种反调试技术,能有效地抵御动态分析;对程序中的关键算法进行虚拟化保护,可以给逆向工作者带来极大的阻力。

符号执行

符号执行(Symbolic Execution)是一种程序分析技术,可以通过分析程序来得到让特定代码区域执行的输入。

使用符号执行分析一个程序时,该程序会使用符号值作为输入,而非一般执行程序时使用的具体值。在达到目标代码时,分析器可以得到相应的路径约束,然后通过约束求解器来得到可以触发目标代码的具体值。

在实际环境下,符号执行被广泛运用到了自动化漏洞挖掘测试的过程中。

在CTF中,符号执行很适合解决各种逆向题,只需让符号执行引擎自动分析,找到让程序执行到输出flag正确的位置,然后求解出所需的输入即可。

二进制插桩

插桩(Instrumentation)是在保证程序原有逻辑完整性的基础上,在程序中插入探针,通过探针的执行来收集程序运行时信息的技术。

插桩往往用在以下两方面:

  • 程序分析,性能分析,错误检测、捕获和重放。
  • 程序行为模拟,改变程序的行为,模拟不支持的指令。

与源码级插桩相比,二进制插桩与语言无关,不需要程序的源码,也不需要重新编译链接程序,它直接对程序的机器码进行插桩,因此在逆向工程和实际漏洞挖掘中一般可以使用二进制插桩。

学习路线:

这个方向初期比较容易入门一些,掌握一些基本技术,拿起各种现成的工具就可以开黑了。不过,要想从脚本小子变成黑客大神,这个方向越往后,需要学习和掌握的东西就会越来越多以下是网络渗透需要学习的内容:
在这里插入图片描述

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

需要这份系统化资料的朋友,可以点击这里获取

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

  • 20
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值