1.浅谈URI中的源码任意文件
浅谈URI中的任意文件
文件下载业务中,URI的解析正确处理是关键。通常,源码接口形式如//download?解析fileName=xxx.png,若未过滤目录穿越符号如...或未限制下载路径,源码传入参数如../../etc/passwd即可实现路径穿越,解析茅台溯源码内容下载任意文件。源码解析URI以得到文件名,解析如/file/test.jpg,源码尝试访问/file/../../test.jpg时,解析中间件或框架在解析路由时会有所处理。源码那么,解析能否通过此途径进行目录穿越并利用呢?
在实际项目中,源码一个文件下载的解析实现使用了Spring框架的FileCopyUtils.copy()方法。文件路径filepath通过req.getRequestURI()获取,源码autojs网络验证源码此方法不规范URI中的特殊字符,直接拼接路径并读取文件,未限制下载目录且未过滤敏感关键字,存在任意文件下载风险。
当前项目的upload目录结构如下:
访问../WEB-INF/web.xml,成功穿越到上级目录WebContent,并获取web.xml配置信息。可转债主图源码中间件处理../,使其等同于直接访问/userfiles/WEB-INF/web.xml。若尝试读取更敏感文件如/etc/passwd,需要多级../,但tomcat处理后已不在有效目录范围内,返回异常。尝试扩大漏洞危害,android 应用下载源码编码请求触发 Invalid URI错误,tomcat对保留字符;进行截断并处理为参数。在编码基础上再次访问,获取路径为/upload/;/../../../../../../../../etc/passwd,返回状态码。
结合网站其他业务,可以创建名为;的狂神无双源码目录,访问/userfiles/upload/;%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2fetc%2fpasswd,成功下载敏感文件。
引入@PathVariable注解,用于接收请求路径中的占位符值,可以实现文件下载,如访问/var/work/download/{ filename},下载名为{ filename}的文件。参数在URI中,利用还需探究。
通常,直接使用../../../目录穿越尝试下载/etc/passwd等敏感文件,中间件解析时已处理../,参数filename无法利用。处理后URI为/file/etc/passwd,未找到映射,返回。
尝试对/编码访问,tomcat源码检测到%2F斜杠返回状态码。源码流程包括解码和格式化URI。Spring对URI进行一次解码,如/file/get/..%fetc/passwd变为/file/get%2fetc/passwd。
在前端用JS对URL编码,忽略Spring的解码操作。使用双重URL编码处理../请求,绕过中间件和Spring的URLDecode,实现目录穿越,成功下载内容。
集成Shiro框架时,案例一中的;可能需要编码为%3b。Shiro高版本对编码进行处理,继续利用需深思。
2025-01-30 06:30380人浏览
2025-01-30 06:281028人浏览
2025-01-30 06:27175人浏览
2025-01-30 04:362525人浏览
2025-01-30 04:09682人浏览
2025-01-30 03:44591人浏览
1.华为平板闪屏怎么解决?2.电脑和主机连接不上3.电脑主机声音大怎么办4.电脑开机蓝屏,重启就好了。怎么解决?5.手提电脑出现搜索界面无法退出?华为平板闪屏怎么解决? 华为平板出现闪屏问题,影响
1.华为平板闪屏怎么解决?2.电脑和主机连接不上3.电脑主机声音大怎么办4.电脑开机蓝屏,重启就好了。怎么解决?5.手提电脑出现搜索界面无法退出?华为平板闪屏怎么解决? 华为平板出现闪屏问题,影响