先放个例题吧,原理后面有时间再更:BUUCTF ciscn_2019_s_3 保护只开了nx 1 signed __int64 vuln() 2 { 3 signed __int64 v0; // rax 4 char buf[16]; // [rsp+0h] [rbp-10h] BYREF 5 6
原创
2022-09-09 15:53:25
115阅读
rootersctf_2019_srop总结根据本题,学习与收获有:srop用于溢出空间比较大的场景,需要注意:如果将frame的rip设置为syscall;ret,那么rsp指向地址,就是即将下一个栈帧的栈顶。程序会取rsp指向的地址或指令继续执行leave;ret指令的本质是mov rbp rsp;pop rbp;pop ripsrop可以构造多个帧,特别是程序缺乏/bin/sh的时候,第1帧
转载
2021-05-08 21:02:02
333阅读
2评论
这是我第一次见到srop的用法的题目,于是在此记录方便以后的复习 拿到程序例行检查 将程序放入ida中 可以看到栈的大小是0x10,却可以显示出0x30的内容,所以我们可以通过这个溢出泄露出/bin/sh在栈的偏移值 关于srop的解析,我在这里贴一个ctfwiki的解析 SROP - CTF Wi ...
转载
2021-09-04 20:51:00
209阅读
2评论
setcontext+orw 大致可以把2.27,2.29做为两个分界点。 我们先来讨论 2.27 及以下的 setcontext + orw 的写法。 首先 setcontext 是什么?了解过 SROP 的师傅应该知道 pwntools 自带了一款可以控制寄存器值的工具。模板如下: frame
原创
2022-09-09 15:52:52
346阅读