摘要:
inndy_echo2 解题思路 简单的printf,修改printf@got为system然后再输入/bin/sh获取shell exp from pwncli import * cli_script() p = gift['io'] e = gift['elf'] libc = gift['li 阅读全文
摘要:
ACTF_2019_OneRepeater 解题思路 什么保护都没有,几乎是白给。经典的格式化字符串,这里选择修改printf的got表内容为system然后再输入/bin/sh拿shell exp from pwncli import * cli_script() p = gift['io'] l 阅读全文
摘要:
GKCTF-2021-checkin 总结 根据本题,学习与收获有: 如果程序的栈溢出只覆盖到rbp,那么大概率也是考栈迁移,只是刚好当前函数结束后会执行依次leave; ret,然后上层函数还有一次leave; ret 合理利用程序中的gadgets,比如call puts指令等。劫持了rdi之后 阅读全文
摘要:
GKCTF-2021-EsapeSH 总结 根据本题,学习与收获有: 碰到分支比较复杂,流程比较长的题目,首先定位一下有没有泄露出flag的地方,有没有执行system("/bin/sh")的地方,可以快速定位到漏洞点 对于off by null漏洞,需要借助系统残留的fd和bk指针进行unlink 阅读全文
摘要:
OGeek2019-Final-OVM 解题思路 一道很有趣的虚拟机的题目,抽象实现了一套寄存器、代码段、数据段。解题思路如下: 利用一系列操作,将一个libc的地址放置在寄存器中 打印寄存器,即可得到libc地址 再利用寄存器写内存操作,将__free_hook写为system,释放/bin/sh 阅读全文
摘要:
wustctf2020_babyfmt 解题思路 题目还挺有趣的,点在于需要循环进行fmt_attack。栈上某个地址存储着fmt_attack_flag,当其不为0的时候,会直接执行exit退出。因此,需要尝试寻找一个地址,该地址存储着fmt_attack_flag的地址。因此,解题思路为: 修改 阅读全文
摘要:
ciscn_2019_n_7 解题思路 利用溢出修改指针的洞,将指针修改到stdout结构体上方,修改flag为0xfbad1800,然后修改IO_write_base为__environ地址,IO_write_ptr为__environ + 8地址,泄露栈地址 劫持__libc_start_mai 阅读全文