- 做开发要刷Leetcode -

- 搞安全要打CTF -

CTF(Capture The Flag)中文一般译作夺旗赛,通俗来讲,就是模拟“黑客”所使用的技术、工具、方法等手段发展出来的网络安全竞赛。近年,国内外各类高质量的CTF竞赛层出不穷,CTF已经成为学习、提升信息安全技术,展现安全能力和水平的绝佳平台。

CTF赛题涉及的非常领域广,市面上相关书籍还停留在知识广度上的覆盖,但CTF模块间的发展程度参差不齐,始终缺少能够深入介绍单一领域的内容,尤其是Pwn方向!

而Pwn恰恰是CTF竞赛中体现技术实力的关键部分、也是最难的部分

---- Pwn ----

Pwn在黑客俚语中代表着攻破,获取权限,由“own”这个词引申而来。在CTF比赛中它代表着溢出类的题目,主要考查参赛选手对漏洞的利用能力。

身为二进制安全相关模块,偏向于底层方向,学习曲线陡峭,要求学习者对系统的理解更加深入。

所需知识:C、OD+IDA、数据结构、操作系统。

今天博文带来了一本《CTF竞赛权威指南(Pwn篇)》!

杨超 编著

本书专注于Linux二进制安全。全书包含12章,从二进制底层开始,结合源码详细分析了常见的二进制安全漏洞、缓解机制以及漏洞利用方法,并辅以分析工具和环境搭建的讲解。

本书在素材的选择上较为连续、完整,每个知识点均配以经典例题,并花费了大量篇幅深入讲解,以最大程度地还原分析思路和解题过程。读者完全可以依据本书自主、系统性地学习,达到举一反三的效果。

可谓悟透各类漏洞利用技术、深入掌握CTF Pwn的精要之作!

腾讯eee战队亲自指导

本书的审校者腾讯科恩实验室负责人吴石老师率领的腾讯eee战队——曾多次斩获国内外高等级竞赛的大奖,相关经验非常丰富。

吴石老师对本书评价道:

Pwn是网络安全攻防最有魅力的部分,对于原教旨攻防人士来说,Pwn才是原汁原味的技术体现。二进制Pwn一直是CTF比赛的热点和难点,本书定位于CTF Pwn且仅仅只包含Pwn,可以让醉心于攻防领域的人士大快朵颐。

此外,《Python绝技:运用Python成为顶级黑客》、《最强Android书:架构大剖析》译者崔孝晨老师更是为本书作序推荐,并在推荐序中赞扬道:

书中所用的例子贴近CTF实战,讲解详尽,思路清晰,非常有助于读者理解和学习。

本书为广大学子和从业人员学习漏洞利用技术知识提供了有益的指导。相信有志学习者,经过认真钻研,必能早日登堂入室,为我国网络安全事业的发展添砖加瓦。

同样力荐本书的行业大咖还有:

  • 孔韬循(K0r4dji),破晓安全团队创始人、360网络安全专家
  • 泉哥,《漏洞战争:软件漏洞分析精要》作者
  • 曾裕智,漏洞盒子安服总监

本书的作者杨超,毕业于西安电子科技大学,L-Team成员。目前就职于中国汽研北京分院,从事车联网安全研究和工具开发。曾在海康威视、斗象科技工作过。活跃在开源社区。

下面我们来看看他对入门二进制安全的一些学习经验分享。

二进制安全入门

1. 计算机基础

二进制安全是一个比较偏向于底层的方向,因此对学习者的计算机基础要求较高,如C/C++/Python编程、汇编语言、计算机组成原理、操作系统、编译原理等,可以在MOOC上找到很多国内外著名高校的课程资料,中文课程推荐网易云课堂的大学计算机专业课程体系,英文课程推荐如下。

- Harvard CS50 Introduction to Computer Science

- CMU 18-447 Introduction to Computer Architecture

- MIT 6.828 Operating System Engineering

- Stanford CS143 Compilers

2.静态反汇编和动态调试

在具备了计算机基础后,二进制安全又可以细分为逆向工程和漏洞挖掘与利用等方向。学习的目标是掌握各平台上静态反汇编(IDA、Radare2)和动态调试(GDB、x64dbg)工具,能够熟练阅读反汇编代码,理解x86、ARM和MIPS二进制程序,特别要注意程序的结构组成和编译运行的细节。此阶段,大量动手实践是达到熟练的必经之路。推荐资料如下。

- Secure Coding in C and C++, 2nd Edition

- The Intel 64 and IA-32 Architectures Software Developer’s Manual

- ARM Cortex-A Series Programmer’s Guide

- See MIPS Run, 2nd Edition

- Reverse Engineering for Beginners

- 《程序员的自我修养:链接、装载与库》

- 《加密与解密,第4版》

3. 软件漏洞

接下来,就可以进入软件漏洞的学习了,从CTF切入是一个很好的思路。跟随本书的脚步,可以学习到常见漏洞(溢出、UAF、double-free等)的原理、Linux漏洞缓解机制(Stack canaries、NX、ASLR等)以及针对这些机制的漏洞利用方法(Stack Smashing、Shellcoding、ROP等),此阶段还可以通过读write-ups来学习。在掌握了这些基本知识之后,就可以尝试分析真实环境中的漏洞,或者分析一些恶意样本,推荐资料如下。

- RPI CSCI-4968 Modern Binary Exploitation

- Hacking: The Art of Exploitation, 2nd Edition

- The Shellcoder’s Handbook, 2nd Edition

- Practical Malware Analysis

-《漏洞战争:软件漏洞分析精要》

4. 程序分析理论

有了实践的基础之后,可以学习一些程序分析理论,比如数据流分析(工具如Soot)、值集分析(BAP)、可满足性理论(Z3)、动态二进制插桩(DynamoRio、Pin)、符号执行(KLEE、angr)、模糊测试(Peach、AFL)等。这些技术对于将程序分析和漏洞挖掘自动化非常重要,是学术界和工业界都在研究的热点。感兴趣的还可以关注一下专注于自动化网络攻防的CGC竞赛。推荐资料如下。

- UT Dallas CS-6V81 System Security and Binary Code Analysis

- AU Static Program Analysis Lecture notes

5. 其他

如果是走学术路线的朋友,阅读论文必不可少,一开始可以读综述类的文章,对某个领域的研究情况有全面的了解,然后跟随综述去找对应的论文。个人比较推荐会议论文,因为通常可以在作者个人主页上找到幻灯片,甚至会议录像视频,对学习理解论文很有帮助。如果直接读论文则感觉会有些困难,这里推荐上海交通大学“蜚语”安全小组的论文笔记。坚持读、多思考,相信量变终会产生质变。

为了持续学习和提升,还需要收集和订阅一些安全资讯(FreeBuf、SecWiki、安全客)、漏洞披露(exploit-db、CVE)、技术论坛(看雪论坛、吾爱破解、先知社区)和大牛的技术博客,这一步可以通过RSS Feed来完成。

随着社会媒体的发展,很多安全团队和个人都转战到了Twitter、微博、微信公众号等新媒体上,请果断关注他们(操作技巧:从某个安全研究者开始,遍历其关注列表,然后递归,即可获得大量相关资源),通常可以获得最新的研究成果、漏洞、PoC、会议演讲等信息甚至资源链接等。

深入掌握更多CTF Pwn技术内幕请关注《CTF竞赛权威指南(Pwn篇)》一书!

专注CTF Pwn的著作终于来了!从此悟透各类漏洞利用技术相关推荐

  1. [Bugku CTF——Pwn] pwn2

    [Bugku CTF--Pwn] pwn2 题目地址:https://ctf.bugku.com/ 额,好久不写这么简单的题目了 利用栈溢出修改返回地址就好, 如果不会就去看看什么是栈溢出 explo ...

  2. [Bugku CTF——Pwn] pwn4

    [Bugku CTF--Pwn] pwn4 题目地址:https://ctf.bugku.com/ 给的提示很清楚,绕过canary保护 那就绕过就好 题目当中有system函数 利用ROPgadge ...

  3. [Bugku CTF——Pwn] pwn1

    [Bugku CTF--Pwn] pwn1 题目地址:https://ctf.bugku.com/ 额, 直接nc连接上,就可以直接得到shell 好水哦,新手玩玩就好,老鸟勿喷 无语凝噎 cat f ...

  4. CTF|pwn栈溢出入门题level3解题思路及个人总结

    CTF|pwn栈溢出入门题level3解题思路及个人总结 解题思路 拿到题目将文件下载下来拖入ubuntu 发现这一次的文件比较特殊:是一个linux环境下的压缩包,自然而然想到的是解压它 通过命令行 ...

  5. CTF pwn题堆入门 -- Unsorted bin

    Unsorted bin 序言 概述 攻击方式 unlink 释放Chunk到Unsorted bin House of Orange House of einherjar Unsorted bin ...

  6. linux 堆溢出 pwn 指南,新手科普 | CTF PWN堆溢出总结

    学习汇总 序言 自从加入RTIS交流群, 在7o8v师傅,gd大佬的帮助下,PWN学习之路进入加速度.下面是八周学习的总结,基本上是按照how2heap路线走的.由于八周内容全写,篇幅太长,这里只讲述 ...

  7. TAMU ctf pwn部分wp+赛后

    TAMU ctf pwn部分wp 国外的题目,终端连不上就很gan ga...... Tr*vial 大水题,栈溢出,ret2text exp from pwn import *context(arc ...

  8. CTF PWN之精确覆盖变量数据

    刚开始接触pwn的朋友在做pwn练习时可能会有这样的疑问,怎么做到精确覆盖变量数据呢? 我们做pwn练习之前需要先知道:命令行参数C语言的main函数拥有两个参数,为int类型的argc参数,以及ch ...

  9. 【学习笔记】CTF PWN选手的养成(三)

    atum大佬视频的总结 第三章 课时2  堆漏洞的利用技巧 0X01 基础知识 1.操作系统中的内存布局(Linux) 内核空间&用户空间,堆.栈等:cat /proc/pid/maps 要了 ...

  10. ctf(pwn) canary保护机制讲解 与 解密方法介绍

    如果题目开启了 Canary 保护, 往往需要和 格式化字符串漏洞利用联系起来 Canary保护机制 canary的意思是金丝雀,来源于英国矿井工人用来探查井下气体是否有毒的金丝雀笼子.工人们每次下井 ...

最新文章

  1. basestring与str的区别
  2. 发现一个控件,介绍一下
  3. 制作自己的Puppy Linux Live-CD发行版的三种方法
  4. 使用基本身份验证来保护Spring Boot REST API
  5. Android bootchart(二)
  6. 受网友U2U之托,DevComponents出品的TreeGX最新版本Patch出炉
  7. python二多分支例题_Python分支语句练习题
  8. 插入排序(Insert Sort)
  9. sqlyog注册码激活
  10. 关于casewhen...的用法
  11. C盘扩容-Win10
  12. Torch 论文复现:卷积注意力模块 CBAM
  13. python 豆瓣电影top250_Python数据可视化:豆瓣电影TOP250
  14. 2021.10.25-10.31 AI行业周刊(第69期):AI进化之路
  15. Spring5春天还是配置地狱
  16. win10无法修改计算机域名,Win10无法打开网页提示“域名解析错误”怎么办?
  17. 计算机专业英语积累(包括前端和后端常用的)~持续更新
  18. 介绍与评测Intel HLE与RTM技术
  19. 2021年电赛元器件物品清单
  20. 七月算法机器学习笔记5 -- 特征工程

热门文章

  1. PLC控制系统设计的基本原则和主要内容
  2. linux系统添加任务栏蓝牙图标,深度系统中(deepin os)如何使用蓝牙适配器
  3. 【计算机组成与设计:硬件/软件接口】第三章:计算机的算术运算
  4. 快速计算代码行小工具
  5. 【控制】《最优控制理论与系统》-胡寿松老师-第3章-极小值原理及其应用
  6. 数据挖掘十大经典算法(包括各自优缺点 / 适用数据场景)
  7. ClickHouse表引擎Distributed介绍-尚硅谷大数据培训
  8. android 万能播放器
  9. 即时语音提示软件php,即时语音提示校对工具
  10. ISO50001认证辅导,ISO50001提高能源利用效率的潜力涉及到产品实现的全过程