不可能的任务 - 格式字符串攻击

时间:2013-01-24 20:03:17

标签: c string format

  

可能重复:
  Format string attack in printf

所以伙计们, 这不是一个功课,我在IT营地,老师给了我们这个代码:

#include <stdio.h>
int main()
{
    char s[200],s2[100];
    int a=123;
    int b=&a;
    puts("camp login:");
    scanf("%100s",&s);
    puts("somedata:");
    scanf("%50s",s2);
    printf(s2);

    if (a==31337)
        func(s);
}

并告诉我们在不更改代码的情况下执行func(s)。只需编译,运行,输入一些数据。实际上,这是通过连接到SSH服务器来完成的,它自动启动程序,并在执行完成后断开用户。

我不确定是否

    puts("camp login:");
    scanf("%100s",&s);

非常重要,实际上他们要求我们进行系统登录,可能知道谁完成了这项任务。我发现了什么:

int b=&a; //Ultra-weird
scanf("%50s",s2); //Shouldn't it be "scanf("%50s",&s2);" ?

嗯,我知道我现在冒着一些回购的风险,这不是一个真正的编程问题,但我希望有趣的是不要被删除:)

感谢您的回答!

0 个答案:

没有答案