-
heap_base
堆管理器ptmalloc程序运行时堆提供动态分布的内存,从而允许程序申请大小未知的内存,堆由低地址向高地址方向增长,这和栈是相反的(栈是由高地址向低地址方向生长) 每个系统都有自己的堆管理器,不同平台的堆管理器是不一样的,比如Windows、Linu... -
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函数,... -
gyctf_2020_borrowstack
题目 思路: bank是bss段上的,栈空间不足,把泄露libc的东西放在bank上,通过buf跳转到bank泄露libc去找到libc基址 然后加上对应libc的one_gadget偏移,跳转过去执行ong_gadgat就可以了 脚本12345... -
pwn49
题目 看出是静态编译,考虑用mprotect来修改它的权限 ctrl+s查看bss段,找要修改的范围 因为mprotect的地址选择的限制条件 我们把页面边界定为0x80DA000 接着就可以构造payload了 先调用mprotect函数修... -
ciscn_2019_es_2
题目 很明显的栈溢出漏洞,但是可操作空间太小,只能覆盖到ret,所以要用栈迁移 有system函数,但是需要自己传参,可以把/bin/sh字符段放在栈上 有两次输入,第一次输入可以用来泄露ebp的地址 第二次要根据泄露地址去... -
栈溢出进阶
栈迁移change_ebp(栈劫持Demo1) 最多填充12个字节,只能覆盖到ebp 写入的magic的范围到0x0804A380~0x0804A38C 所以栈迁移 脚本1234567891011121314from pwn import *p ... -
ciscn_2019_sw_1
存在system函数,不需要泄露libc的地址 直接把printf的got表地址覆盖为system函数的地址,然后传递参数为“/bin/sh”即可 而且偏移是4 但是该格式化字符串漏洞只被执行了一次,无法实现操作 所以要修改...