【发布时间】:2009-09-28 12:48:56
【问题描述】:
我有一项任务要求我“破解”一段易受攻击的代码。 sn-p:
int main(int argc, char **argv)
{
/*...*/
while(i < argc-1)
{
switch(argv[i][0]-48)
{
case 1:
SmashHeap(argc,argv);
break;
/*...*/
case 8:
PrintfVulnerability(argv[++i]);
break;
default:
printf("%s is not recognized by this program",argv[i++]);
/*...*/
}
i++;
}
return (1);
}
void PrintfVulnerability(char *F)
{
printf(F);
}
最后,我发现它是如此简单,我担心我可能会得到一个差的成绩......我的解决方案:
- copypasta 一个可执行文件到主目录...我用的是freecell.exe
$ ./VulnerableCode 8 `freecell.exe`
噗!!我在玩freecell。为什么会这样?
【问题讨论】:
-
sry,我没有注意到格式从我的命令行吃掉了反引号。请用适当的符号替换[反引号]