- 博客(7)
- 收藏
- 关注
原创 ISCC-easyshell
第一个箭头是canary的值,而后两个位置,也就是第二个红色箭头,我们便可以用来泄露mian+254从而得到pie基地址,即%17p-(0x1422+254)/全部换为16进制就是0x1520/.这样我们可以用%15p将canary的内容打出来了,接下里就需要考虑如何去泄露pie的偏移量了,我们可以本地gdb调试一下,看看栈上都有些什么,运行到printf函数,看看栈内容。我们只要确保输入的前几个字符为flagis,然后就可以从第七个字节开始进行格式化字符串泄露,把pie和canary都泄露出来。
2024-06-06 12:57:59
279
原创 ret2csu
大多时候我们难以找到每个寄存器对应的gadgets,但是当我们遇到wirte函数泄露的时候却必须要控制三个寄存器(64位首先存入数据的rdi,rsi,rdx),这时候,我们就可以利用 x64 下的 __libc_csu_init 中的 gadgets。也就是说,因为write打印的话,是先从栈的低地址打印,再打印高地址的内容,那么先打印0x20的数据,再打印0x8的数据就是栈的基地址,再减去0x118就获得 /bin/sh的地址。而我们所利用的是函数的两块区域。retn到我们需要溢出的函数地址。
2024-03-03 19:55:12
709
2
原创 关于ret2libc的大致见解
所需要注意的是,传参有时可以直接利用其本来就有的参数,而且第三个参数可以不用使用寄存器,有时还会由rsi与其他寄存器一起出现,这时第三个参数便可以随便输入了。Put函数的传参是libc中较为简单的,其只要一个参数即可,所以很明显,那个参数就是某个函数的got地址。第一步已经接收到了,接下来print即可,然后我们看他函数后三位,即可调查到他的真实地址,我们可以使用libcsearcher或者。2.64位-----是先传参,其参数从左到右依次放入寄存器:rdi,rsi,rdx,rcx,r8,r9中。
2023-11-29 14:36:27
171
1
空空如也
pwn给的实例访问入口无法打开
2023-08-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人