pwn


”Pwn”是一个黑客语法的俚语词 ,是指攻破设备或者系统 。发音类似“砰”,对黑客而言,这就是成功实施黑客攻击的声音——砰的一声,被“黑”的电脑或手机就被你操纵。以上是从百度百科上面抄的简介,而我个人理解的话,应该就是向目标发送特定的数据,使得其执行本来不会执行的代码,前段时间爆发的永恒之蓝等病毒其实也算得上是pwn的一种。

pwn介绍

CTF pwn中的目标是拿到flag,一般是在linux平台下通过二进制/系统调用等方式编写漏洞利用脚本exp来获取对方服务器的shell,然后get到flag

前置技能

  • 汇编语言,函数调用约定,大小端,函数栈帧

  • python语言,gdb调试,IDA pro分析

  • linux相关:32位与64位,各类防护机制(NX,ASLR,Canary,Relro),ELF文件格式,系统调用,shell命令

  • 编译,链接,装载,执行

常见漏洞简介

  • 缓冲区溢出(Buffer overflow)

  • 栈溢出,堆溢出,bss溢出等

  • 整数溢出(Integer overflow)

  • 整数的加减乘法

  • 有符号与无符号的转换

  • 整数溢出一般可以转换成其它漏洞

  • 格式化字符串(Format string)

  • printf(s),sprint f(s),fprintf(s)可以修改地址也可以用来leak信息

  • 使用后释放(Use-after-free)

  • 释放掉的内存可能会被重新分配,释放后使用会导致重新分配的内存被旧的使用所改写

  • Double free是一种特殊的UAF

工具

  • IDA

  • pro

  • gdb

  • pwntools

  • zio

  • peda

  • readelf

  • ropgadget

  • string

  • objdump

利用方法

  • 注入代码

    • 溢出后在栈上执行代码

  • 伪造函数

    • 修改.got.plt地址,替换掉正常函数

    • 布置gadget将ret地址指向libc中的其它函数

学习网站

如何开始你的CTF之旅

PWN总结

p4-team

uaf

ddaa

二进制漏洞学习

sploitfun

CTF Writeup Github(Note:百度搜不到github Pages的)

pwnable.kr

pwnable.tw

ROPemporium

学习资料

《有趣的二进制》 
《深入理解计算机系统》 
《程序员的自我修养》 
《深入理解Linux内核》

PWN入门的更多相关文章

  1. Linux pwn入门教程(10)——针对函数重定位流程的几种攻击

    作者:Tangerine@SAINTSEC 本系列的最后一篇 感谢各位看客的支持 感谢原作者的付出一直以来都有读者向笔者咨询教程系列问题,奈何该系列并非笔者所写[笔者仅为代发]且笔者功底薄弱,故无法解 ...

  2. Linux pwn入门教程(0)——环境配置

    作者:Tangerine@SAINTSEC 0×00前言 作为一个毕业一年多的辣鸡CTF选手,一直苦于pwn题目的入门难,入了门更难的问题.本来网上关于pwn的资料就比较零散,而且经常会碰到师傅们堪比 ...

  3. Linux pwn入门教程——CTF比赛

    Linux pwn入门教程(1)——栈溢出基础 from:https://zhuanlan.zhihu.com/p/38985585   0x00 函数的进入与返回 要想理解栈溢出,首先必须理解在汇编 ...

  4. CTF丨Linux Pwn入门教程:针对函数重定位流程的相关测试(下)

    Linux Pwn入门教程系列分享已接近尾声,本套课程是作者依据i春秋Pwn入门课程中的技术分类,并结合近几年赛事中出现的题目和文章整理出一份相对完整的Linux Pwn教程. 教程仅针对i386/a ...

  5. CTF必备技能丨Linux Pwn入门教程——stack canary与绕过的思路

    Linux Pwn入门教程系列分享如约而至,本套课程是作者依据i春秋Pwn入门课程中的技术分类,并结合近几年赛事中出现的题目和文章整理出一份相对完整的Linux Pwn教程. 教程仅针对i386/am ...

  6. CTF必备技能丨Linux Pwn入门教程——PIE与bypass思路

    Linux Pwn入门教程系列分享如约而至,本套课程是作者依据i春秋Pwn入门课程中的技术分类,并结合近几年赛事中出现的题目和文章整理出一份相对完整的Linux Pwn教程. 教程仅针对i386/am ...

  7. CTF必备技能丨Linux Pwn入门教程——格式化字符串漏洞

    Linux Pwn入门教程系列分享如约而至,本套课程是作者依据i春秋Pwn入门课程中的技术分类,并结合近几年赛事中出现的题目和文章整理出一份相对完整的Linux Pwn教程. 教程仅针对i386/am ...

  8. CTF必备技能丨Linux Pwn入门教程——利用漏洞获取libc

    Linux Pwn入门教程系列分享如约而至,本套课程是作者依据i春秋Pwn入门课程中的技术分类,并结合近几年赛事中出现的题目和文章整理出一份相对完整的Linux Pwn教程. 教程仅针对i386/am ...

  9. CTF必备技能丨Linux Pwn入门教程——调整栈帧的技巧

    Linux Pwn入门教程系列分享如约而至,本套课程是作者依据i春秋Pwn入门课程中的技术分类,并结合近几年赛事中出现的题目和文章整理出一份相对完整的Linux Pwn教程. 教程仅针对i386/am ...

  10. CTF必备技能丨Linux Pwn入门教程——ROP技术(下)

    Linux Pwn入门教程系列分享如约而至,本套课程是作者依据i春秋Pwn入门课程中的技术分类,并结合近几年赛事中出现的题目和文章整理出一份相对完整的Linux Pwn教程. 教程仅针对i386/am ...

随机推荐

  1. 冲刺Two之站立会议7

    今天我们把软件的基本功能完成之后,又对所有的界面进行了统一规范化并进行了相应的优化.

  2. "Gun N' Rose" Team学习心得

    如果我比别人看得更远,只因为我站在巨人的肩膀上.                                                        ——牛顿 高级软件工程课程终于开课了!第 ...

  3. A-Softmax的总结及与L-Softmax的对比——SphereFace

    A-Softmax的总结及与L-Softmax的对比--SphereFace \(\quad\)[引言]SphereFace在MegaFace数据集上识别率在2017年排名第一,用的A-Softmax ...

  4. 05-java学习-循环结构

    for while do  while 增强for 各种循环嵌套.循环和if的嵌套.switch的嵌套

  5. VS2013简单的单元测试

    安装过程本人在此就不做多余的说明,如果一个程序员连一个软件都无法安装那我也醉了,其次就是希望我们不要为了完成作业而去用VS,下面我具体说一下单元测试. 第一步,文件→新建一个项目,具体操作如下图 打开 ...

  6. k8s 实验过程中遇到的两个小问题 端口 和 批量删除Error的pods

    1. 自己kubeadm搭建的一套k8s系统 然后进行做实验 发现了几个问题 jenkins 创建 salves的时候总是有问题.  提示注册不上 然后 我修改了下yaml文件 暴露端口 50000 ...

  7. phpStudy-坑爹的数据库管理器-phpMyAdmin的默认用户名和密码

    在这里我必须承认自己的弱智,第一次使用phpMyAdmin竟然搞了10分钟才进去!!! 要使用默认的用户名和密码: 用户名:root 密码:root 尼玛!坑爹啊!不说清楚让我百度了半天!!!!

  8. 关于链表的总结(C++循环实现)

    0.目录 1.链表的基本操作 1.1 结点定义 1.2 创建链表 1.3 销毁链表 1.4 打印链表 1.5 获取链表长度 2.结点的基本操作 2.1 删除结点 2.2 查找结点 3.面试题 3.1 ...

  9. Oracle 存储容量最大的字段类型CLOB

    1.优点,无限容量 2.数据量大时读取很慢

  10. 【题解】 [SCOI2011]糖果 (差分约束)

    懒得复制,戳我戳我 Solution: 首先考虑\(X=1\)的情况,我们其实只用用一下并查集把相等的点合为一个点 然后后面的四个式子我们就可以用差分约束了,就拿\(X=2\)的情况来说吧,我们用\( ...