-
Unlink
unlink 的目的是把一个块从链表中摘除,也就是“解链”。 unlink 触发的典型情况是:当堆中的 chunk 被释放并合并(consolidate)时,glibc 为了维护双向链表结构,需要从 bin 中移除一个 chunk,而这时就会调用 u... -
UAF漏洞初探
UAF,全称use after free,即在释放之后使用 那么具体又代表了什么呢? 我们首先要知道的是,我们free适当大小的chunk时,我们free掉的chunk会先被放入bins, 在我们再次申请适合大小的chunk时系统会优先从我们bins... -
pwn_docker题目部署
dockerDocker 是一个 容器化工具。 在不同的环境下,程序可能因为处于不同的环境无法正常运行, docker能把 程序 + 依赖环境 一起打包成一个标准的“盒子”(镜像),然后在任何地方都能运行(容器),容器就是镜像的动态实例. 组成部分d... -
网谷杯
pwn金丝雀-wgb附件 分析看到main中的buf可以绕过canary,而gift是很明显的栈溢出 用read函数去泄露,把canary的值放到bss段,写出来 之后用retlibc去泄露就好,(把canary放在合适的位置上面) 可以看到 ... -
SROP
syscall_leaverootersctf_2019_srop 可以看到这个什么都没有,但是存在pop rax的操作,所以可以用SROP来泄露后门函数 思路用SROP第一次读入执行read函数,第二次向这个read函数读入/bin... -
[HNCTF 2022 WEEK2]ret2csu
题目 分析 可以看到没有system函数,而且只能通过write去泄露,write有三个参数,但是pop指令不够 所以要用csu 整理一下思路 先通过pop那一块操作把我们要的值放入对应的寄存器中,然后再调用mov函数去设置我们需要的寄存器,... -
[NSSRound#14 Basic]rbp
题目 可以看到是栈迁移,而且是只有read输入的类型,考虑lea类型 因为read读入数据之后哈有个puts输出,为了防止发送数据的时机不对,我们控制lea在输出try it之前,以控制程序执行流程 又看到沙盒,在程序中验证 允许所有系统... -
simple_shellcode
题目 MEMORY[0xCAFE0000]: 这部分表示程序正在访问内存地址 0xCAFE0000 处的内容。 (): 在 C/C++ 等编程语言中,圆括号 () 通常表示函数调用。 合起来,这句话的意思就是:将内存地址 0xCAFE... -
[ZJCTF 2019]Login
题目 发现代码有点不容易分析,但是题目中存在直接的后门函数 所以题目应该不难 在check函数中 看到这个函数的参数被执行了 所以我们可以把这个参数直接替换为后门函数的地址(第一个参数存在rdi中) 因为这个函数是在main函数中被调用的 我们去...