pwm初尝试

Hello world,hello blog!

Posted by 吴柚 on July 22, 2019

前言

由于被304卡了很久,所以打算尝试一下后面要测试的pwnable.kr上的题目,所以这几天研究了一下pwn的解题。

pwn-fd

题目最下方有个ssh命令,这是linux的远程连接命令,(host=pwnable.kr , user =fd  password=2222 password=guest),可以打开linux终端,直接输入那行命令进行连接ssh fd@pwnable.kr -p2222

然后使用ls命令查看文件,然后使用cat fd.c来查看fd.c文件里的内容

分析一下出现的代码,可以发现关键点在于len = read(fd, buf, 32);

但是read(,,)这个函数没见过,所以对这个知识点进行补充。

read是一个计算机函数,可以用来从文件中读取内容。read()会把参数fd 所指的文件传送count个字节到buf指针所指的内存中。

0为标准输入,1为标准输出,2为标准错误,而我们可以看到read(fd, buf, 32),这里fd便是关键,若为0,我们自己输入后,变成功得到flag,所以需要进行倒推,让fd为0,也就是atoi(argv[1])大小为0x1234(atoi是c语言的将字符串转化为数字,假设字符串为str =1234,他会转化为数字int=1234),而0x1234是16进制的,用计算器转换下为4660,也就是说我们要使argv[1]为4660

在键盘键入./fd 4660进入程序,然后输入LETMEWIN即可解得flag.