共13题
知识点:任意文件读取
任意文件读取漏洞
描述:
任意文件读取漏洞指攻击者通过操控文件路径或输入,读取本不应允许访问的敏感文件。
原理:
攻击者通过路径遍历等方式,绕过文件路径限制,访问系统敏感文件(如 /etc/passwd
)或应用配置文件。
攻击方式:
- 通过构造恶意路径(如 ../../../../etc/passwd
)读取敏感文件。
- 泄露系统配置或认证信息。
防御措施:
1. 路径白名单: 限制可访问文件范围。
2. 路径规范化: 使用 realpath()
等函数,去除恶意路径符号。
3. 权限控制: 严格设置文件访问权限。
4. 文件类型检查: 验证文件扩展名或 MIME 类型。
示例:
@app.route('/view_file', methods=['GET'])
def view_file():
filename = request.args.get('file')
with open(f'/files/{filename}', 'r') as file:
content = file.read()
return content