ToB企服应用市场:ToB评测及商务社交产业平台
标题:
进阶 stack smashing--canary 报错利用 && environ泄露栈地址
[打印本页]
作者:
天空闲话
时间:
2024-5-17 04:26
标题:
进阶 stack smashing--canary 报错利用 && environ泄露栈地址
进阶 stack smashing--canary 报错利用 && environ泄露栈地址
这部分是对进阶stack smashing的使用,以及对 environ的认识,我们可以看一个buu上详细的标题
标题连接
https://buuoj.cn/challenges#wdb2018_guess
看一下保护,pie没有开
64位ida载入看一下
那么在ida内里看见还是挺贫困的,首先步伐打开了flag文件,然后把flag读取到的栈上的buf数组中,有三次输入的机会,而且gets存在栈溢出
那么思绪是通过找到偏移我们可以把puts_got表的地址打印出来,然后得到libc的地址之后可以找到environd的地址,这里解释一下这个environ。
environ在Linux C中,environ是一个全局变量,它储存着系统的情况变量。它储存在libc中因此environ是沟通libc地址与栈地址的桥梁。简而言之就是这内里存着情况变量的地址,也就是可以通过这个,找到栈上的地址,然后计算偏移找到buf存的flag地址,最后一次输入在输入flag的地址就可以打印出flag
看一下environ存的值
然后再找一下我们输入内容的地址和__libc_argv[0] 指针所指向的字符串的偏移
计算一下偏移0x7fffffffe5d8-0x7fffffffe4b0 = 0x128,那么只要我们输入0x128个垃圾数据之后再输入puts got表的地址就可以泄露出puts的真实地址了,那么就可以拿到一系列的地址
然后我们找一下情况变量距离flag位置的偏移
那么偏移为0x7fffffffe5e8 - 0x7fffffffe480 = 0x168,然后得到了flag的偏移就可以完善一下脚本了
exp:
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4