-
[ZJCTF 2019]Login
题目 发现代码有点不容易分析,但是题目中存在直接的后门函数 所以题目应该不难 在check函数中 看到这个函数的参数被执行了 所以我们可以把这个参数直接替换为后门函数的地址(第一个参数存在rdi中) 因为这个函数是在main函数中被调用的 我们去... -
heap_base入门到入坟
堆管理器ptmalloc程序运行时堆提供动态分布的内存,从而允许程序申请大小未知的内存,堆由低地址向高地址方向增长,这和栈是相反的(栈是由高地址向低地址方向生长) 每个系统都有自己的堆管理器,不同平台的堆管理器是不一样的,比如Windows、Linu... -
orw
orw基础orw是open、read和write三个系统调用的缩写。orw 攻击是一种绕过沙箱(Sandbox)或NX保护的技术,其核心思想是:不直接获取shell,而是通过这三个系统调用来读取目标文件(通常是flag文件),然后将其内容打印到标准输... -
ciscn_2019_s_3
题目 没有后门函数,也没有能用来泄露libc地址的东西 但是看到有execve和一些对寄存器的操作,考虑csu 在栈上写入/bin/sh,之后调用它 数据在栈的位置不是固定的,但是偏移是固定的 可以通过read和write来... -
栈迁移
栈迁移原理栈迁移(Stack Pivoting) 是二进制漏洞利用(Pwn)中的核心 ROP 进阶技术,主要解决栈溢出空间不足的问题。它通过劫持栈指针(ESP/RSP),将程序执行流从原始受限栈区,转移到攻击者可控的大片可写内存(如 BSS... -
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函数修... -
栈溢出进阶
栈迁移change_ebp(栈劫持Demo1) 最多填充12个字节,只能覆盖到ebp 写入的magic的范围到0x0804A380~0x0804A38C 所以栈迁移 脚本1234567891011121314from pwn import *p ... -
ciscn_2019_sw_1
存在system函数,不需要泄露libc的地址 直接把printf的got表地址覆盖为system函数的地址,然后传递参数为“/bin/sh”即可 而且偏移是4 但是该格式化字符串漏洞只被执行了一次,无法实现操作 所以要修改... -
格式化字符串
原理格式化字符串函数可以接受可变数量的参数,并将第一个参数作为格式化字符串,根据它解析之后的参数。 通俗来说,格式化字符串函数的作用是将计算机内存中的数据转化为人类可读的字符串格式。 一般来说,格式化字符串在利用的时候主要分为三个部分: (1)格式化...