文件读取漏洞的攻防

当前执行的命令:

/proc/self/cmdline  # 可能包含有用的路径信息
在这里插入图片描述

获取枚举进程状态:

在这里插入图片描述 在这里插入图片描述

网络信息:

  • /proc/net/arp # arp表,可以获得内网其他机器的地址

  • /proc/net/tcp 在这里插入图片描述

程序运行的环境变量信息 在这里插入图片描述

再比如刚才通过burp intruder扫出来的各种路径,比如web日志,dnsmasq日志: 在这里插入图片描述 可用于进一步搜集信息。

路径穿越的绕过

?不知道为什么 在这里插入图片描述

或者通过url encode 一次不行就两次: 在这里插入图片描述 在这里插入图片描述

通过00截断:

在这里插入图片描述

路径穿越的防御

首先,应用应该避免让用户可控系统访问文件的API参数。 如果一定要用户指定,那只能通过过滤来避免漏洞了 一方面,如果可以是某些白名单就白名单,如果不行,则对用户可控的文件名只允许字母和数字; 另一方面,将用户提供的文件名与一个基本路径(通常是提供文件名拼接的上级路径)进行拼接,然后进行canonicalize(规范化),也就是进行路径穿越(执行完…/)之后再对这个值进行判断,是否以给定的base路径开头。

示例代码:

Last updated

Was this helpful?