PWN二进制漏洞学习指南

前言

最近准备学PWN,所以买了《CTF权威指南(PWN)篇》的书粗略的看完后,在这里做个学PWN需要掌握的知识指南,如有补充欢迎评论。

前置技能

首先我觉得要学习PWN还是要有一定基础的,因为PWN毕竟是和系统底层知识打交道,所以我觉得应该具备如下的一些技能,并且我推荐了一些不错的书籍。

PWN概念

概述

PWN我觉得最开始的时候应该是没有这门学科和系统化的资料教程的,PWN本身属于高阶技能,个人感觉都是以前那些逆向大佬、编程大佬开始玩点高级的东西,然后就开始挖漏洞,结果就挖出了各种二进制漏洞,并且把二进制漏洞也完美的利用起来了,后面就归纳总结出一套体系供后人学习,在此真的膜拜那些前辈的共享精神。

发音

至于PWN为什么叫PWN呢?是什么单词的缩写吗?其实只是一种声音,pwn!你的电脑爆炸了,你的电脑被攻破了,因为用二进制漏洞挖掘与利用这词来形容pwn未免也太长了,所以就用了简洁的叫法。

术语

这里介绍一些简单的PWN术语

  • Exploit(exp) 用于攻击的脚本与方案
  • Payload 攻击载荷,是对目标进程劫持控制流的数据
  • Shellcode 调用攻击目标的shell的代码

PWN环境搭建

学习PWN知识我们先需要一个指定的环境来进行PWN,这里首选的操作系统为Ubuntu、Kali然后安装必要的PWN环境软件来进行搭建,当然如果你想省力气的话也可以用docker直接部署别人封装好的pwn环境。

推荐教程链接:PWN虚拟机配置-yichen知识库PWN环境配置-星盟安全PWN入门教程-环境配置pwndocker

PWN知识学习途径

个人觉得PWN知识的话需要掌握常见漏洞安全机制PWN技巧

常见漏洞

  • 整数安全
  • 格式化字符串
  • 栈溢出与ROP
  • 堆利用

安全机制

  • Stack Canaries 栈保护
  • No-eXecute
  • ALSR 和 PIE
  • FORTIFY_SOURCE
  • RELRO

PWN技巧

  • One-gadget
  • 通用dadget及Return-to-csu
  • 劫持hook函数
  • 利用DynELF泄露函数地址
  • SSP Leak
  • 利用environ泄露栈地址
  • 利用_IO_FILE结构
  • 利用vsyscall

推荐的学习资料有《CTF竞赛权威指南(PWN篇)》星盟安全 PWN系列教程Linux Pwn入门教程yichen的信安知识库 二进制安全CTF中PWN知识点整理CTF-PWN资料与资源Nightmare 二进制课程。然后最好是跟着视频或者书籍再找一个在线的CTF网站练习,因为只有练习多了后才能熟能生巧,才能加深各种知识的理解。

推荐的CTF平台有:BUUCTFpwnable.tw攻防世界NSSCTFpwnable.kr

PWN相关资源博客

这些是我随便收集的排名不分先后,方便知识获取与整理。

https://bestwing.me/ Swing'Blog 浮生若梦

https://www.jarvisw.com/ 人称汪神 白帽子、全栈、IoT安全专家、嵌入式系统专家

http://whereisk0shl.top/ K0sh1: 就职于 360 vulcan Team ,擅长windows 漏洞挖掘与利用

https://o0xmuhe.github.io/ 三叶草Pwn选手,多个Adobe CVE编号拥有者

https://changochen.github.io/about.html Pwn神,目前在美国求学,专研学术

https://www.cnblogs.com/Ox9A82/ 三叶草Pwn选手,玄武实验室就职,方向是Windows和浏览器

https://f1r.github.io/ r2kapig 成员,二进制选手

https://gloxec.github.io/ Hook iOS && Pwn选手,目前就职360

http://riusksk.me/ 泉哥,《漏洞战争》作者

https://firmianay.github.io/ Firmy Yang 《CTF权威指南(Pwn)篇》作者

https://roderickchan.github.io/ 群里某位二进制大佬博客

http://47.101.67.103/tags/pwn/ eeeeeeeeeeeeeeeea

https://zhouyetao.github.io 星盟团队创始人之一

https://eur1ka.github.io/ eur1ka ,群内Pwn大佬 已刷几百pwn题,目前研究IoT

https://vxer-lee.github.io/ 我,一个渣渣会点re,正在学pwn

Pwn菜鸡小分队

可以加群一起学习pwn技术,群内有pwn大佬(不是我),互相交流才能进步,群内也可分享re和web技术。

最新文章

  1. 理解Docker(2):Docker 镜像
  2. Hadoop 集群搭建
  3. python Django教程 之 安装、基本命令、视图与网站
  4. xml解析工具-jdom
  5. 【leetcode】Merge Intervals
  6. Python.Scrapy.14-scrapy-source-code-analysis-part-4
  7. 将TP引擎改为smarty引擎
  8. python的几个常用内置函数
  9. java中封装
  10. HDU 5734 Acperience (推导)
  11. 用PowerShell批量收回wsp包
  12. js optimization and performance
  13. Unity3D NGUI UIPlayTween控件(一)动态打开关闭窗口
  14. python成长之路第三篇(4)_作用域,递归,模块,内置模块(os,ConfigParser,hashlib),with文件操作
  15. js 获取单项复选的值
  16. poj 3415 Common Substrings
  17. 【前端工具】Chrome 扩展程序的开发与发布 -- 手把手教你开发扩展程序
  18. 个性化推荐调优:重写spark推荐api
  19. 定时任务Crontab
  20. IdentityServer4 中文文档 -2- (简介)相关术语

热门文章

  1. jsp页面动态获取系统时间
  2. C++快速读入
  3. PHP中针对区域语言标记信息的操作
  4. Docker系列(13)- 部署es+kibana
  5. Django边学边记—模板
  6. PHP 7.4 checking for libzip 和 failed to open error_log 问题
  7. 发送curl请求的函数
  8. mysql8 navicat远程链接失败
  9. Hive——安装以及概述
  10. 深入浅出WPF-06.Binding(绑定)03