如何开始你的CTF比赛之旅-网站安全-
在过去的两个星期里,我已经在DEFCON 22 CTF里检测出了两个不同的问题:“shitsco ”和“ nonameyet ”。感谢所有 的意见和评论,我遇到的最常见的问题是:“我怎么才能在CTFs里开始?”在不久前我问过自己一样的问题,所以我想要给出些对你追求CTFs的建议和资 源。最简单的方法就是注册一个介绍CTF的帐号,如 CSAW , Pico CTF , Microcorruption 或是 其他 的。通过实 践、耐心和奉献精神,你的技能会随着时间而提高。
如果你对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://www.endgame.com/blog/how-to-get-started-in-ctf.html
题目地址:http://www.myhack58.com/Article/60/76/2014/51250.htm
如何开始你的CTF比赛之旅-网站安全-的更多相关文章
- 【CTF 攻略】CTF比赛中关于zip的总结
[CTF 攻略]CTF比赛中关于zip的总结 分享到: --> 本文首发于安全客,建议到原地址阅读,地址:http://bobao.360.cn/ctf/detail/203.html 前言 ...
- ctf比赛linux文件监控和恢复shell
之前参加ctf比赛时候临时写的,有很多不足,不过可以用,就贴出来分享给大家,希望对大家有帮助. 脚本一:记录当前目录情况 #!/bin/bashfunction getdir(){ for el ...
- i春秋CTF-“百度杯”CTF比赛 九月场 XSS平台
“百度杯“CTF比赛 九月场 ###XSS平台 看了别人的wp才知道这里需要变数组引起报错然后百度信息收集,这一步在实战中我觉得是很有作用的,get到. 这里取百度rtiny,看别人w ...
- [i春秋]“百度杯”CTF比赛 十月场-Hash
前言 涉及知识点:反序列化.代码执行.命令执行 题目来自:i春秋 hash 如果i春秋题目有问题可以登录榆林学院信息安全协会CTF平台使用 或者利用本文章提供的源码自主复现 [i春秋]"百 ...
- "百度杯"CTF比赛 十月场——EXEC
"百度杯"CTF比赛 十月场--EXEC 进入网站页面 查看源码 发现了vim,可能是vim泄露,于是在url地址输入了http://21b854b211034489a4ee1cb ...
- 记一次CTF比赛过程与解题思路-MISC部分
前言 最近好久没更新博客和公众号了,有朋友问是不是在憋大招,但我不好意思说其实是因为最近一段时间太懒了,一直在当咸鱼- 意识到很久没更新这个问题,我是想写点什么的,但好像一直当咸鱼也没啥可分享的,最近 ...
- “百度杯”CTF比赛 九月场_123(文件备份,爆破,上传)
题目在i春秋ctf训练营 翻看源码,发现提示: 打开user.php,页面一片空白,参考大佬的博客才知道可能会存在user.php.bak的备份文件,下载该文件可以得到用户名列表 拿去burp爆破: ...
- “百度杯”CTF比赛 九月场_SQLi
题目在i春秋ctf大本营 看网页源码提示: 这边是个大坑,访问login.php发现根本不存在注入点,看了wp才知道注入点在l0gin.php 尝试order by语句,发现3的时候页面发生变化,说明 ...
- “百度杯”CTF比赛 九月场_SQL
题目在i春秋ctf大本营 题目一开始就提醒我们是注入,查看源码还给出了查询语句 输入测试语句发现服务器端做了过滤,一些语句被过滤了 试了一下/**/.+都不行,后来才发现可以用<>绕过 接 ...
随机推荐
- 问题记录-Fragment导包不同导致无法自动转型
代码如下 public class MainActivity extends FragmentActivity { @Override public void onCreate(Bundle save ...
- STM32F0xx_TIM基本延时配置详细过程
前言 关于定时器大家都应该不会陌生,因为处理器都有这个功能.今天总结的F0系列芯片的定时器根据芯片型号不同,数量也不同.定时器分类:基本定时器.通用定时器和高级定时器.计数位数也有不同,有16位的,有 ...
- 一些关于python的小感想
python是一门优秀的语言,但随之而来的是大量的知识,各种模块,相信一个人的大脑是很难记住如此多的内容.这时后的我们就应该想办法避免去记忆这么多的内容. 1.查看官方文档(英语很重要,啥也不说了) ...
- Python开发【第一篇】Python基础之生成器和迭代器
生成器和迭代器 1.生成器 一个函数调用时返回一个迭代器,那这个函数就叫做生成器(generator):如果函数中包含yield语法,那这个函数就会变成生成器: def func(): yield 1 ...
- java clone简单学习
最近在帮忙写单侧的时候,经常会和这几个对象类打交道,因为对java也不是很熟悉,刚好学习一下,都是很浅的学习,并没有深入的去学习哈,因为感觉也用不上. protected Object clone() ...
- pyenv
export PYTHON_BUILD_MIRROR_URL="http://pyenv.qiniudn.com/pythons/"
- 批处理判断是否存在文件,存在则运行另外一个bat文件
现在需求如下: 使用bat文件判断是否存在ktr文件,存在则运行pan.bat,执行kettle脚本. 代码如下: @echo off @title 批处理判断文件夹是否存在 cd /d F: rem ...
- Windows Phone 8.1SDK新特性预览
前言 Windows Phone 8.1的预览版将在近期推送,WP 8.1的SDK也已经进入到RC阶段,可以从这里安装.本次更新的SDK被直接集成到了VS2013Update2里面,不再是单独的 ...
- 【转】Git常用命令备忘
Git配置 git config --global user.name "robbin" git config --global user.email "fankai@g ...
- Go实现线程池
本文通过代码讲解如何实现一个线程池.代码(来自https://gobyexample.com/)及注释如下: package main import "fmt" import &q ...