CTF

在过去的两个星期里,我已经在DEFCON 22 CTF里检测出了两个不同的问题:“shitsco”和“nonameyet”。感谢所有的意见和评论,我遇到的最常见的问题是:“我怎么才能在CTFs里开始?”在不久前我问过自己一样的问题,所以我想要给出些对你追求CTFs的建议和资源。最简单的方法就是注册一个介绍CTF的帐号,如CSAWPico CTFMicrocorruption或是其他的。通过实践、耐心和奉献精神,你的技能会随着时间而提高。

如果你对CTF竞争环境之外的问题有兴趣,这里有一些CTF比赛问题的集锦。挑战往往也是有多种不同的难度级别,注意解决最简单的问题。难易程度是根据你的个人技能的程度决定的,如果你的长处是取证,但是你对加密不在行,取证问题将会成为得分点而相比之下加密问题就会拖后腿。CTF组织者对此有同样的感知,这是为什么对于CTF比赛的评价是很大的挑战性。

如果你已经亲自尝试过几个基础问题且仍然苦恼,现在有很多自学的机会!CTF比赛主要表现以下几个技能上:逆向工程、密码学、ACM编程、web漏洞、二进制练习、网络和取证。可以从中选择并关注一个你已经上手的技能方向。

1、逆向工程。我强烈建议你得到一个IDA Pro的副本,这有免费版和学生认证书。尝试下crack me的问题。写出你的C语言代码,然后进行反编译。重复这个过程,同时更改编译器的选项和程序逻辑。在编译的二进制文件中“if”声明和“select”语句有什么不同?我建议你专注于一个单一的原始架构:x86、x86_64或是ARM。在处理器手册中查找你要找的,参考有:

《Practical Reverse Engineering》

《Reversing: Secrets of Reverse Engineering》

《The IDA Pro Book》

2、加密。虽然这不是我自己的强项,但这里有一些参考还是要看看的:

《Applied Cryptography》

《Practical Cryptography》

Cryptography I

3、ACM编程。选择一个高层次的语言,我推荐使用Python或Ruby。对于Python而言,阅读下《Dive into Python》和找一些你要加入的项目。值得一提的是Metasploit是用Ruby编写的。关于算法和数据结构的计算机科学课也要在此类中要走很长的路。看看来自CTF和其他编程的挑战,战胜他们。专注于创建一个解决方法而不是最快或是最好的方法,特别是在你刚刚开始的时候。

4、web漏洞。有很多的网络编程技术,在CTF中最流行的就是PHP和SQL。php.net网站(译者注:需FQ)是一个梦幻的语言参考,只要搜索你好奇的功能。PHP之后,看到网页上存在的挑战的最常见的方法就是使用Python或Ruby脚本。主要到技术有重叠,这有一本关于网络安全漏洞的好书,是《黑客攻防技术宝典:Web实战篇》。除此之外,在学习了一些基本技术之后,你可能也想通过比较流行的免费软件工具来取得一些经验。这些在CTF竞争中也可能会偶尔用到,这些加密会和你凭经验得到的加密重叠。

5、二进制练习。这是我个人的爱好,我建议你在进入二进制练习前要完成逆向工程的学习。这有几个你可以独立学习的常见类型漏洞:栈溢出堆溢出,对于初学者的格式字符串漏洞。很多是通过练习思维来辨别漏洞的类型。学习以往的漏洞是进入二进制门槛的最好途径。推荐你可以阅读:

《黑客:漏洞发掘的艺术》

《黑客攻防技术宝典:系统实战篇》

《The Art of Software Security Assessment》

6、取证/网络。大多数的CTF团队往往有“一个”负责取证的人。我不是那种人,但是我建议你学习如何使用010 hex editor,不要怕做出荒谬、疯狂、随机的猜测这些问题运行的结果是怎样。

最后,Dan Guido和公司最近推出了CTF领域指南,会对以上几个主题的介绍有很好的帮助。

http://drops.wooyun.org/tips/4862       总结
http://dev.gameres.com/Program/Visual/Other/GIFDoc.htm       GIF文件详解

时间: 2024-10-27 01:20:08

CTF的相关文章

CTF学习之CODE

今年,国内各种CTF比赛应接不暇,第一次参加CTF是因为百度举办的BCTF.当时和几个好友一起参加了,过程相当的有趣,因此走上了这条不归路. CTF真的是很考验脑力的一个东西,题目涉及的范围相当之广,每次参加CTF我都有一个很强烈的感受:知识完全不够用,还是关掉浏览器滚回去好好学习! 今天,又是SCTF开赛,排行榜上各种大神我等只能膜拜,决心好好学习,系统的学一下,今天先从CODE开始. 我想,在CTF里面比较常见的要属摩斯码了.就是由点和横线组成的特殊符号串.如下图: 图中已经给的很清楚了,对

CTF中常见Web源码泄露总结

.hg源码泄漏 漏洞成因: hg init的时候会生成.hg e.g.http://www.am0s.com/.hg/ 漏洞利用: 工具:dvcs-ripper rip-hg.pl -v -u http://www.am0s.com/.hg/ .git源码泄漏 漏洞成因: 在运行git init初始化代码库的时候,会在当前目录下面产生一个.git的隐藏文件,用来记录代码的变更记录等等.在发布代码的时候,把.git这个目录没有删除,直接发布了.使用这个文件,可以用来恢复源代码. e.g. http

记录实验吧 CTF库 who are you? 过程

首先我承认我看了别人怎么做的 因为我并没有什么经验虽然知道回显是由X-Forwarded-For 参数导致的 但一直无法利用 所以看了demo因为涉及到要写脚本记录注入过程 所以特此记录我看了2个demo选择了最直接的一个也就是使用awvs扫描 然后再python扫 因为我觉得我并没有手工找注入点的本事 先学学利用工具 虽然别人写了用awvs 但是开始不管怎么扫描都是扫描不出来  后来..一个简单的办法原来是这样  附图: 好简单  然后发现了果然是可以注入的 好像是基于的时间延迟 可惜没系统学

CTF中那些脑洞大开的编码和加密

0x00 前言 正文开始之前先闲扯几句吧,玩CTF的小伙伴也许会遇到类似这样的问题:表哥,你知道这是什么加密吗?其实CTF中脑洞密码题(非现代加密方式)一般都是各种古典密码的变形,一般出题者会对密文进行一些处理,但是会给留一些线索,所以写此文的目的是想给小伙伴做题时给一些参考,当然常在CTF里出现的编码也可以了解一下.本来是想尽快写出参考的文章,无奈期间被各种事情耽搁导致文章断断续续写了2个月,文章肯定有许多没有提及到,欢迎小伙伴补充,总之,希望对小伙伴们有帮助吧! 0x01 目录 1 2 3

Sharif University CTF 2016 -- Login to System (PWN 200)

EN: It's easy to find out where is the bug : .text:0000000000400DE4 ; void *start_routine(void *).text:0000000000400DE4 start_routine   proc near               ; DATA XREF: sub_401182+C8o ... .text:0000000000400F3B                 lea     rcx, [rbp+h

CTF的简单题解题 1

这是去IDF实验室做的CTF题:http://ctf.idf.cn/index.php 一.被改错的密码 一看,被修改的密码有33位.只有l不是16进制的,所以把l去掉,然后用md5在线解密就可以解除密码是idf 二.啥? 有种技术叫数据隐写,比方将数据藏在图片的编码里... 用16进制查看器就好了,把图片拉进去...从ASCII码中找到答案了..就在最后 用的HxD 也可以直接右键用记事本打开图片,在最后也会看到答案 三.红与黑 这个只需要改一下图片的亮度和色调就能看出图片底下黑色部分显示的答

西普ctf解题思路——《貌似有点难》

           学校最近准备办一场网络攻防夺旗赛,不说话,找了西普的平台练练.有些题挺有意思的,决定把思路写下.. 题目链接:http://www.shiyanbar.com/ctf/examctfdetail/32 点进去,发现提示IP不在允许列表内, 于是审查源代码,发下猫腻. 可以看出代码的意思.如果IP在1.1.1.1.那么就能拿到key.于是就让我们想到了一款强大的火狐插件.可以伪造IP.所以接下来的思路就是使用Firefox插件 modify header 伪造IP.就这么愉快

CTF线下攻防赛

SSH登陆 两三个人进行分工,一个粗略的看下web,有登陆口的话,就需要修改密码,将情况反馈给队友,让登陆ssh的小伙伴进行密码的修改,改成炒鸡复杂.然后将Web目录下载下来,上WAF.文件监控.端口扫描.将这几个工作分工好,顺序就像图上. tips:将下载下来的Web目录理一遍,看是否有可疑的文件夹,比如bak. 网络拓扑 主机发现 如果是在同个C段,或者B段,均可以使用RouterScan进行对80端口扫描进行扫描得出,嫌麻烦的话,就用httpscan(https://github.com/

那些年做过的ctf之加密篇(加强版)

MarkdownPad Document html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label

那些年做过的ctf之加密篇

最近ctf做的比较多,顺便整理一下做个笔记,大概有加密篇.隐写篇.逆向破解和web方向的几篇文章,整理出来之后会陆续发出来. Base64: ZXZhbCgkX1BPU1RbcDRuOV96MV96aDNuOV9qMXVfU2gxX0oxM10p NTU2NJC3ODHHYWJIZ3P4ZWY= Base64编码要求把3个8位字节(3*8=24)转化为4个6位的字节(4*6=24),之后在6位的前面补两个0,形成8位一个字节的形式. 如果剩下的字符不足3个字节,则用0填充,输出字符使用'=',因