- 博客(8)
- 收藏
- 关注
原创 PolarCTF 靶场PWN(一)
read能输入40个字节 buf只有32个存在溢出 然后我们计算buf到s2的距离 (0x50-0x30)覆盖到这里之后 在输入lovecat\x00。打开ida发现了box函数,分析之后发现不能输入cat flag,但是还要对buf进行赋值。照例checksec查一下发现是64位然后开启了NX保护。照例查看 在ida里发现有输入可以造成溢出。找漏洞没找到到这里就很懵了,不知道怎么做了。学习一下别的师傅的思路发现直接输入$0就行。这就典型的后门函数了,直接写exp。然后我们就可以写exp了。
2025-04-01 21:43:08
583
原创 C语言函数调用栈
然后我们就可以输入字符,但当我们碰到一些类似于gets的漏洞函数时就可以一直输入对retn没有检查这就是ret2txt的内容了........为了以后更好的做题和对各种知识的理解 花费一点时间巩固复习一下基础的知识。首先函数调用结束后肯定会有一个返回函数,栈的结构是从高地址向低地址增长的。如图是栈的结构,从高地址像低地址增长。会有一个retn,然后sp的位置就会随之增长。这样栈中就能形成一个可以输入字符的空间。那么,调用一个函数所执行的汇编指令。首先就是了解栈的基本结构。从最基本的栈基础开始。
2025-03-24 20:02:02
249
原创 BUU PWN_05
让a1=-1163220307 就可以对win2赋值,然后再返回到flag中对a1重新赋值打印出flag。在vuln函数中v2是有符号的整型,在get_n函数中v2是无符号的,所以可以利用整形溢出。可以输入“-1”,然后他就转换成了无符号类型的,然后利用libc即可。发现flag,只需要满足&&的三个条件即可打印出来。老样子先检查之后ida分析 只是简单的栈溢出。win1已经赋值 查看win2。ida查看之后分析一下代码。0x18+0x4 溢出。
2025-03-13 20:44:11
141
原创 PWN_04 (栈迁移) ciscn_2019_es_2
IDA查看之后发现有system地址但是栈的空间太小,所以我们利用栈迁移,迁移到第二个read的0x30中,让我们足够存放binsh,构造system。0x30-0x20=0x8 泄露8个字节ebp占四个返回地址占四个,无法泄露太长,所以想到利用栈迁移。ebp(1)存放的内容是上一次ebp(0)压入的,通过第一次read将第一次ebp(0)打印出来。我们知道ebp(1)到buf的距离 不知道ebp(1)到ebp(0)的距离。需要用到 leave ret指令。找到leave_ret的地址。
2025-03-04 20:54:45
265
原创 BUUCTF wp
开启了canary绕过,有printf格式化字符串漏洞,当x=4时执行system。原本这样就可以直接写exp了,但是这道题有个特殊的点就是没有返回地址。进入ida中shift+f12发现有flag.txt。checksec ida查看后发现之打开了NX保护。读取并打印出flag,所以我们只需要泄露栈溢出。向printf输入一串%p得到偏移量。思路就是给x赋值为4。然后我们可以确定偏移。
2025-02-26 20:12:43
226
原创 PWN_2
分析主函数,发现有个gets危险函数(无限输入),他的存储空间为0x40,超过这个存储空间就会造成栈溢出我们向gets中输入一个长度为0x40+8长度的字符是他造成栈溢出之后我们寻找后门函数system (执行危险函数获取shell)找到后门函数的地址0x40060D构造payload。
2024-11-28 20:35:50
805
原创 CTF中PWN解题思路(个人笔记)
ESP是堆栈指针寄存器,存放执行函数对应栈帧的栈顶地址(也是系统栈的顶部),且始终指向栈顶;EBP是栈帧基址指针寄存器,存放执行函数对应栈帧的栈底地址,用于C运行库访问栈中的局部变量和参数。确定后门地址和变量到栈底的距离,填充中间空间并覆盖ret为返回地址。可能会有冒号,输入之后出现这种情况,把冒号删掉改为空格即可。(remote为攻击远程,process为打本地)之后可能会出现光标在下一行闪烁,此时输入指令。在输入cat这个命令查看文件。查看文件找到flag这个文件。(以BUUCTF为例)
2024-11-02 17:00:27
1124
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅