美文网首页
Canary机制 -格式化字符串漏洞

Canary机制 -格式化字符串漏洞

作者: Zero_0_0 | 来源:发表于2018-10-09 23:24 被阅读0次

一.
canary相当于一个标志当修改程序时,会发现程序是否被修改。
注: 找到canary偏移地址,填充打印出canary的值
1.程序源码:

图片.png
2.编译:gcc -m32 -ggdb -z execstack -fstack-protector -no-pie -o pwnme Cannary.c生成pwnme程序
3.查看偏移地址是否一直在变动:ldd pwnme
注:关闭地址随机化echo 0 > /proc/sys/kernel/randomize_va_space
4.运行pwnme
OK!
二.调试
1. 图片.png
2.进入汇编窗口layout asm 图片.png
3.输入ni执行下一条指令,回车快捷方式
4.一直往下xor %gs:0x14,%eax 异或进行比较 图片.png
三.
canary泄露
1.canary是一直变化的值,每运行一次就发生一次变化。eax的值变,也就说明canary的值也发生变化。比较如下图: 图片.png 实际情况,跟自己的eax的值.
2.所以说canary的值具有不可预测性
但是,eax的值来源于gs:0x14,而gs:0x14存在于栈空间上,所以我们只要找到它栈空间上的位置,就可以泄露它的值。接下来我们就利用格式化字符串漏洞泄露Canary
3.格式化字符串漏洞在printf在下断点。 图片.png
4.运行 输入值
5.然后查看栈空间内容,esp = 0xffffcf80,指向字符串起始位置 =0xffffcfec
图片.png
注:由此可知格式化字符串偏移为 = (0xffffcfec - 0xffffcf80) / 4 = 27

相关文章

  • Canary机制 -格式化字符串漏洞

    一.canary相当于一个标志当修改程序时,会发现程序是否被修改。注: 找到canary偏移地址,填充打印出ca...

  • 西湖论剑2019pwn签到题

    main函数 输入id有一个格式化字符串漏洞 因为程序开启了canary保护,所以只能先通过printf泄露can...

  • Canary机制及绕过策略-格式化字符串漏洞泄露Canary

    Canary主要用于防护栈溢出攻击。我们知道,在32位系统上,对于栈溢出漏洞,攻击者通常是通过溢出栈缓冲区,覆盖栈...

  • XMAN结营赛总结

    once_time 这题主要利用了格式化字符串的漏洞,另外有canary的保护,需要用到栈溢出报错的函数具体的利用...

  • 格式化字符串pwn200

    2017湖湘杯pwn200,还是比较经典的格式化字符串例题 先查看一下保护机制: 32位开启了canary和堆栈不...

  • noxctf-2018-wp

    pwn1-believeMe x86 elf | nx , stack canary 漏洞点:40个字符内的格式化...

  • 格式化字符串漏洞实验(转载)

    格式化字符串漏洞实验一、 实验描述格式化字符串漏洞是由像 printf(user_input) 这样的代码引起的,...

  • lab9

    格式化字符串漏洞,不过是有点蛇皮的格式化字符串,学到了不少新姿势 很明显的格式化字符串,但同时也可以发现,我们的输...

  • hxb2017 pwne easy format vuln

    pwntools 对格式化字符串漏洞payload的支持 这题本身没啥好记的,就是一个简单的格式化漏洞,但是有个p...

  • echo和echo2 writeup

    echo 防护机制: 32位的开启了NX的程序ida反编译一下: 很明显的一个格式化字符串漏洞,加上程序中存在sy...

网友评论

      本文标题:Canary机制 -格式化字符串漏洞

      本文链接:https://www.haomeiwen.com/subject/yncuaftx.html