目录所有实验室 |网络安全学院 (portswigger.net)
Directory traversal
- 1. 文件路径遍历,简单案例
- 2. 文件路径遍历,通过绝对路径旁路阻止遍历序列
- 3. 文件路径遍历,非递归剥离遍历序列
- 4. 文件路径遍历,使用多余的 URL 解码剥离遍历序列
- 5. 文件路径遍历,路径开始验证
- 6. 文件路径遍历,使用空字节旁路验证文件扩展名
1. 文件路径遍历,简单案例
File path traversal, simple case
-
使用 Burp Suite 截获和修改获取产品图像的请求。
-
修改参数
filename
,观察响应是否包含文件的内容。/etc/passwd
../../../etc/passwd # 相对路径 “../",这个路径表示回到上一级目录
访问操作系统中的 passwd 文件。passwd 文件包含系统中所有用户的用户名、密码、用户 ID、主目录等信息
2. 文件路径遍历,通过绝对路径旁路阻止遍历序列
File path traversal, traversal sequences blocked with absolute path bypass
- 使用 Burp Suite 修改产品图像的请求
filename
/etc/passwd
- 当接收到用户提供的路径时,应用程序首先将其解析为绝对路径,然后将其与白名单中的路径进行比较。防止攻击者使用目录遍历序列来访问应用程序之外的文件和目录。
- 如果路径在白名单内,则认为是合法的;
- 否则,应用程序会拒绝该请求并返回错误信息。
3. 文件路径遍历,非递归剥离遍历序列
File path traversal, traversal sequences stripped non-recursively
- 非递归剥离遍历序列:应用程序会解析路径并对其进行分析,然后使用算法来删除路径中的 "../" 遍历序列
- 使用双写绕过
....//....//....//etc/passwd
4. 文件路径遍历,使用多余的 URL 解码剥离遍历序列
File path traversal, traversal sequences stripped with superfluous URL-decode
- 第四关
/
被过滤了,所以需要对其进行 URL 编码,但在 burp 中用 Repeater 发送后还是错误,得知需要进行第二次 URL 编码才可绕过
..%252f..%252f..%252fetc/passwd
5. 文件路径遍历,路径开始验证
File path traversal, validation of start of path
验证请求的文件路径是否以 “/var/www/” 开头
/var/www/images/../../../etc/passwd
6. 文件路径遍历,使用空字节旁路验证文件扩展名
File path traversal, validation of file extension with null byte bypass
- 在 URL 编码中,%00 可以用于表示字符串的结束符。
- 作用是将“.png”文件名截断,使得请求实际上是针对“/etc/passwd”这个文件的
../../../etc/passwd%00.png
标签:文件,遍历,..,passwd,路径,portswigger,traversal,靶场
From: https://www.cnblogs.com/yii-ling/p/17188180.html