使用pwnable.kr 01-fd解决问题。 文件描述符和过程

图片

在本文中,我们将分析:什么是文件描述符,进程如何访问某些输入/输出流,以及从站点pwnable.kr解决第一个任务。

组织信息
特别是对于那些想要学习新知识并在信息和计算机安全性的任何领域中发展的人们,我将撰写和讨论以下类别:

  • PWN;
  • 密码学(加密);
  • 网络技术(网络);
  • 反向(反向工程);
  • 隐写术(Stegano);
  • 搜索和利用Web漏洞。

除此之外,我将分享我在计算机取证,恶意软件和固件分析,对无线网络和局域网的攻击,进行笔测试和编写漏洞利用程序方面的经验。

为了使您可以查找有关新文章,软件和其他信息的信息,我在Telegram中创建了一个频道,并创建了一个小组来讨论 ICD领域中的所有问题 。 另外,我会亲自考虑您的个人要求,问题,建议和建议, 并会回答所有人

提供所有信息仅出于教育目的。 对于由于使用本文档而获得的知识和方法对某人造成的任何损害,本文档的作者不承担任何责任。

文件描述符


文件描述符是一个非负数,用于标识可能与文件,目录或套接字关联的输入/输出流。

图片

系统文件表(SFT-系统文件表)和索引节点表(INode表)包含进程访问文件数据所需的信息。 如果多个进程请求访问同一文件,那么尽管这些进程将使用同一文件,但每个进程都会收到其自己的系统文件表元素。

内核在获得对文件的访问权时为其提供文件描述符。 我们可以说,文件描述符是每个进程唯一的打开文件数组的索引。 但是前三个指标是固定不变的:

  • 0-标准输入(stdin);
  • 1-标准输出(stdout);
  • 2-标准错误流(stderr)。

因此,C标准库中的gets()和printf()函数使用stdin和stdout,这使Shell可以正确地重定向进程的输入和输出。

FD工作解决方案


我们单击第一个带有fd签名的图标,并被告知需要通过SSH与密码guest连接。

图片

连接后,我们会看到相应的横幅。

图片

让我们找出服务器上有哪些文件,以及我们拥有的权限。

ls -l 

图片

因此,我们可以读取程序的源代码,因为每个人都有读取的权利,并可以根据所有者的权利执行fd程序(置位置位)。 让我们看一下源代码。

图片

从代码中可以看出,程序将数字作为参数,从中减去0x1234并将其用作描述符以获取应等于“ LETMEWIN”的字符串。

图片

因此,我们需要通过标准输入流(stdin)向程序发送字符串“ LETMEWIN”。 为此,传递给read()函数的描述符必须为0。也就是说,必须将数字0x1234用作程序参数。 将其转换为十进制。

图片

现在,使用参数4660运行该程序,放下所需的行并拾取标记。

图片

结果,我们得到了第一点。

图片

Pwnable.kr从这样一个简单的任务开始,这归功于它必须处理描述符。 在以下文章中见!

我们在电报频道中: Telegram中频道

Source: https://habr.com/ru/post/zh-CN458346/


All Articles