• simple_shellcode

    题目 MEMORY[0xCAFE0000]: 这部分表示程序正在访问内存地址 0xCAFE0000 处的内容。 (): 在 C/C++ 等编程语言中,圆括号 () 通常表示函数调用。 合起来,这句话的意思就是:将内存地址 0xCAFE...
  • [ZJCTF 2019]Login

    题目 发现代码有点不容易分析,但是题目中存在直接的后门函数 所以题目应该不难 在check函数中 看到这个函数的参数被执行了 所以我们可以把这个参数直接替换为后门函数的地址(第一个参数存在rdi中) 因为这个函数是在main函数中被调用的 我们去...
  • heap_base

    堆管理器ptmalloc程序运行时堆提供动态分布的内存,从而允许程序申请大小未知的内存,堆由低地址向高地址方向增长,这和栈是相反的(栈是由高地址向低地址方向生长) 每个系统都有自己的堆管理器,不同平台的堆管理器是不一样的,比如Windows、Linu...
  • MoeCTF 2025

    100find it(fd) dup回赋值这个文件描述符1的功能,所以在close(1)之后只能通过dup(1)复制的值3来作为输出到终端的文件描述符,会产生新的文件描述符的只有open和dup等函数 write和read是调用他 所以接下来,ope...
  • NewStar2024 pwn

    week2Bad Asm 所以通过编写汇编代码来写这段shellcode 通过异或等操作来绕过不能有00以及syscall 或 sysenter 指令汇编码的限制 脚本 1234567891011121314151617181920212223242...
  • orw

    orw基础orw是open、read和write三个系统调用的缩写。orw 攻击是一种绕过沙箱(Sandbox)或NX保护的技术,其核心思想是:不直接获取shell,而是通过这三个系统调用来读取目标文件(通常是flag文件),然后将其内容打印到标准输...
  • libc版本切换

    更换libc版本首先要拿到对应的libc.so文件 然后查看版本 1strings libc文件名 |grep ubuntu 然后切换clibc版本 1libc 文件名 libc版本信息 查看libc版本通过got表泄露libc版本 输出一个...
  • ciscn_2019_s_3

    题目 没有后门函数,也没有能用来泄露libc地址的东西 但是看到有execve和一些对寄存器的操作,考虑csu 在栈上写入/bin/sh,之后调用它 数据在栈的位置不是固定的,但是偏移是固定的 可以通过read和write来...
  • 栈迁移

    基础两个对buf的输入pwn75 位置不够,且有system函数但没有“/bin/sh”字符串 思路泄露ebp的地址,然后gdb调试找到buf开头和ebp之间的偏移以找到buf的位置 之后通过第二次输入对调用system函数,...
  • [2021 鹤城杯]littleof

    题目 开启了canary保护 所以用printf泄露canary的数值 之后用ret2libc的方法解决 脚本123456789101112131415161718192021222324252627282930313233343536373839...
/4