我对LFI感到困惑,在这里,我看到了很多坏掉的web应用演示程序演示了LFI,它们在其中遍历一个类似于/etc/passwd的目录。这些密码是如何准确存储的?我不明白为什么会有一个密码目录。肯定会有数据库在使用,密码不会像这样躺在一起吗?
非常新鲜的道德黑客和笔试,并将感谢对此的任何见解。
发布于 2022-03-15 14:41:42
大多数情况下,当测试LFI漏洞时,您尝试遍历到/etc/passwd,以验证when应用程序易受LFI攻击,而不通常是为了查找密码。对于/etc/passwd,有几个很好的理由:
虽然可以在/etc/passwd中设置用户密码,但这是愚蠢的不安全(请记住,每个人都可以阅读它)。那里面是什么?
jdoe:*:202:202:John Doe:/home/jdoe:/bin/bash
这个*意味着散列密码存储在/etc/shadow中,它是根用户拥有的,除了根用户之外,不应该被读取。了解有关/etc/passwd 这里的更多信息
发布于 2022-03-14 20:33:12
首先是LFI问题。
本地文件包含(也称为LFI)是通过利用在应用程序中实现的易受攻击的包含过程,包括在服务器上已经本地存在的文件的过程。例如,当页面作为输入接收到必须包含的文件的路径时,该漏洞就会发生,而该输入没有被正确地清除,从而允许注入目录遍历字符(如点-点斜杠)。尽管大多数示例都指向易受攻击的PHP脚本,但我们应该记住,它在其他技术(如JSP、ASP和其他技术)中也很常见。
您通常看到的是利用PHP脚本加载非PHP文件的人。在这些情况下,如果文件不包含<?php (或者<?,如果是short_open_tag = On),文件将显示而不是执行。
现在,/etc/passwd:它是*nux系统上的一个文件,包含关于所有用户的一些信息:用户名、名称、UID、shell和主文件夹。/etc/passwd必须具有世界可读性,因为它包含UID->用户名映射、主文件夹(例如,您可以将~username映射到/home/users/external/u/username )。它不再包含密码,这些密码存储在/etc/shadow上,并且受到限制:只有root才能读取它。
由于/etc/passwd具有世界可读性,所以它被用作一个PoC,以查看您是否真正实现了本地文件包含。如果您尝试包含/etc/passwd并失败,这是因为LFI失败了,而不是因为文件不存在。
https://security.stackexchange.com/questions/260357
复制相似问题