美文网首页
格式化漏洞利用原理

格式化漏洞利用原理

作者: 鸡龙 | 来源:发表于2019-03-24 17:00 被阅读0次

在printf()函数正常使用中,printf(s),printf("%s",s)都能够输出s字符串的值,但如果在s字符串中存在%,计算机无法判断是否为参数,所以可以在printf(s)中s填入带有%的符号,能达到泄漏地址的作用。
一般我们想要泄漏栈上多个地址,往往可以采用输出多个%x来达到。如果想直接获得某个地址,可以用%n$x。

#include <stdio.h>
int main() {
  char s[100];
  int a = 1, b = 0x22222222, c = -1;
  scanf("%s", s);
  printf("%08x.%08x.%08x.%s\n", a, b, c, s);
  printf(s);
  return 0;
}

可以用以上C代码来验证输入%08x.%08x.%08x,你会发现他在第二个printf中输出的是调用printf函数时调用栈上的部分地址
也可以输入AAAA%p%p%p%p%p%p%p%p%p%p%p%p%p%p%p,你会发现其中有一段为对应的414141,41为A的ASCII码

当然,能得到地址,当然也能覆盖地址,%n为将参数量赋值给当前地址,可以作为覆盖地址的渠道

#include <stdio.h>
 
int main(void)
{
    int c = 0; 
    printf("%.100d%n", c,&c);
    printf("\nthe value of c: %d\n", c);
    return 0;

这个函数就成功的将c修改为100,所以只要能找到c的地址,再适当的使用%n植入对应的参数数量,就能将c地址覆盖为你想要地址

相关文章

  • 2 安全编译

    格式化漏洞利用

  • 5 格式化漏洞利用

    格式化漏洞利用

  • 格式化漏洞利用原理

    在printf()函数正常使用中,printf(s),printf("%s",s)都能够输出s字符串的值,但如果在...

  • CVE-2018-2628

    环境搭建 漏洞利用 漏洞原理 明天补。 参考文章 https://blog.csdn.net/archersabe...

  • 针对最近的ImageMagick Elie提出的学习一个漏洞

    碰到一个新漏洞: 查阅相关文档 本地复现漏洞环境 了解漏洞原理 了解漏洞利用并进行测试 批量 和 修复 eg:

  • 攻防世界 string wp

    参考:CTF-wiki格式化字符串漏洞利用 0x01寻找漏洞 -checksec -在IDA中对文件进行分析。 查...

  • iOS逆向(3)-APP重签名

    本文将从原理分析,到利用原理的漏洞,再到具体过程,最后利用脚本全自动实现。 文章首发:https://www.ji...

  • Metasploit-SSH爆破

    目的 利用SSH弱口令漏洞,获取目标主机权限 原理 靶机root用户存在弱口令漏洞,利用枚举的方法破解目标主机ss...

  • URL跳转漏洞

    URL跳转漏洞(URL重定向漏洞),跳转漏洞一般用于钓鱼攻击。 原理:URL跳转漏洞本质上是利用Web应用中带有重...

  • [Off-By-Null]picoctf2019-ghostdi

    知识点 off by null 类型漏洞的利用思路 漏洞利用过程中遇到的问题及原理分析 环境 libc2.27 o...

网友评论

      本文标题:格式化漏洞利用原理

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