Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

149 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pwn新手的成长之路

这里是 RocketDev 的CTF Writeup仓库,你可以在这里找到我打过的比赛的wp, 所有blog上的wp都来源于此,如果你想看的wp在blog上还没有的话,不妨先来这里找找

wp中包含无处归档的wp
个人做pwn题的writeup分专题放在各文件夹中

short shellcode

项目下有32位和64位比pwntools短的shellcode,建议搭配:r shellcode??b使用

32位汇编后长20B
64位汇编后长22B

关于exp

除了最开始的几个新手赛的exp以外,其他的exp全都是按以下方式运行:

  1. 运行ipython
  2. 使用%load xxx.py加载exp
  3. 运行payload(lo)来运行exp

关于lo有这样一些约定俗成的规律:

  1. lo == 0: 打远程
  2. lo != 0: 打本地的样本
  3. lo & 0b10: 启动gdb附加调试器
  4. lo & 0b100: 输入需要爆破的地址(一般是直接从gdb中拿,避免打本地时还需要反复爆破)

例子: payload(1)是不开gdb,直接打本地;payload(2)是启动gdb打本地;payload(6)是启动gdb打本地并输入本地偏移 (如果有相关代码);使用while payload(0): pass可以一直打远程直到爆破成功

实操如下:

example

这种方法的优点是适合命令行熟练并且使用tmux + vim套件的人高效运行代码,而且遇到什么错误时,往往tube还没关闭, 可以很方便地使用sh.recv()来知晓剩下的错误信息(如果有),还可以跑一些python运算,如hex(0x37 ^ 0x69)

缺点就是调试过程中出错需要自己close对象,如果忘记,那么退出ipython的时候就会有一堆的进程结束,此外, 门槛相较双击运行也稍高一番

Copyright

Distributed under CC BY-NC 4.0
Copyright RocketDev 2023-2025

About

pwn writeups in ctf

Topics

Resources

Stars

Watchers

Forks

Releases

Contributors

Languages