[Toddler's Bottle]
Posted chrysanthemum
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Toddler's Bottle]相关的知识,希望对你有一定的参考价值。
fd
Pwn:
Reason:
当fd为0的时候代表标准输入,也就是控制台,然后就可以实现buf=="LETMEWIN " , 编辑了一下fd.c-->命名为1.c用来测试,gcc编译指令“gcc 1.c -o 1”
#include <stdio.h> #include <stdlib.h> #include <string.h> char buf[32]; int main(int argc, char* argv[], char* envp[]){ if(argc<2) { printf("pass argv[1] a number "); return 0; } printf("%s %s ",argv[0],argv[1]); int fd = atoi( argv[1] ) - 0x1234; printf("fd:%d ",fd); int len = 0; len = read(fd, buf, 32); if(!strcmp("LETMEWIN ", buf)){ printf("good job :) "); system("/bin/cat flag"); exit(0); } printf("learn about Linux file IO "); return 0; }
本来是想直接传0x1234但是atoi后为0,看来atoi函数不支持十六进制
以上是关于[Toddler's Bottle]的主要内容,如果未能解决你的问题,请参考以下文章
pwnable.krToddler‘s Bottle-[fd]
pwnable.krToddler‘s Bottle-[collision]
pwnable.krToddler‘s Bottle-[passcode]