ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

文件操作之文件下载读取

2022-07-28 00:00:54  阅读:344  来源: 互联网

标签:文件 读取 WEB web INF php 下载


文件操作安全

不安全的文件下载概述

​ 文件下载功能在很多web系统上都会出现,一般我们当点击下载链接,便会向后台发送一个下载请求,一般这个请求会包含一个需要下载的文件名称,后台在收到请求后 会开始执行下载代码,将该文件名对应的文件response给浏览器,从而完成下载。 如果后台在收到请求的文件名后,将其直接拼进下载文件的路径中而不对其进行安全判断的话,则可能会引发不安全的文件下载漏洞。
​ 此时如果 攻击者提交的不是一个程序预期的的文件名,而是一个精心构造的路径(比如../../../etc/passwd),则很有可能会直接将该指定的文件下载下来。 从而导致后台敏感信息(密码文件、源代码等)被下载。

​ 所以,在设计文件下载功能时,如果下载的目标文件是由前端传进来的,则一定要对传进来的文件进行安全考虑。 切记:所有与前端交互的数据都是不安全的,不能掉以轻心!

​ 你可以通过“Unsafe file download”对应的测试栏目,来进一步的了解该漏洞。

文件包含,文件下载,文件读取.

unsafe filedownload

图片下载链接:

http://localhost/pikachu/vul/unsafedownload/execdownload.php?filename=kb.png

图片正常下载

http://localhost/pikachu/vul/unsafedownload/execdownload.php?filename=../execdownload.php

利用文件下载漏洞,下载exeddownload.php文件.

image-20220727110244907

http://localhost/pikachu/vul/unsafedownload/execdownload.php?filename=execdownload.php

尝试更换将../删除,进行测试.

image-20220727110817360

说明当前路径在unsafedownload的下一级目录中,没有找到文件.只有返回上一级目录也就是unsafe download(这里不是太清楚,欢迎批评指正.)

通过文件下载下载任意文件.比如config.inc.php文件.

image-20220727112938783

/pikachu/vul/unsafedownload/execdownload.php?filename=kb.png

通过对比之前网址可以发现.需要跳过3级目录.

payload:

http://localhost/pikachu/vul/unsafedownload/execdownload.php?filename=../../../inc/config.inc.php

这里犯了一个错误,以为需要跳两级就好了,结果到了vul,实际需要三级才到pikachu目录下,这样正确下载.

image-20220727113843462

[RoarCTF 2019]Easy Java

JAVA的考察web.xml泄露的

image-20220727225959689

  1. 普通登录框,这里要么注入,暴力破解,都尝试了.无功而返,
  2. 这里我们看一下,help链接.

http://e38d1944-f4f7-450f-b659-b683f4d9bb3b.node4.buuoj.cn:81/Download?filename=help.docx

image-20220727230419764

image-20220727230232052

  1. 这里我们采用post方式下载数据.

image-20220727230855655

文档内容如下,猜测flag大致此处.然后题目提到java,卡住了,k查看writeup是通过下载WEB-INF/web.xml 泄露

6. WEB-INF/web.xml 泄露

WEB-INF是Java的WEB应用的安全目录,如果想在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。

Tomcat的WEB-INF目录,每个j2ee的web应用部署文件默认包含这个目录。
Nginx在映射静态文件时,把WEB-INF目录映射进去,而又没有做Nginx的相关安全配置(或Nginx自身一些缺陷影响)。从而导致通过Nginx访问到Tomcat的WEB-INF目录(请注意这里,是通过Nginx,而不是Tomcat访问到的,因为上面已经说到,Tomcat是禁止访问这个目录的。)。

WEB-INF 主要包含一下文件或目录:

WEB-INF/web.xml : Web应用程序配置文件, 描述了servlet和其他的应用组件配置及命名规则.
WEB-INF/database.properties : 数据库配置文件
WEB-INF/classes/ : 一般用来存放Java类文件(.class)
WEB-INF/lib/ : 用来存放打包好的库(.jar)
WEB-INF/src/ : 用来放源代码(.asp和.php等)
12345

直接在域名后面加上WEB-INF/web.xml

通过找到 web.xml 文件,推断 class 文件的路径,最后直接 class 文件,再通过反编译 class 文件,得到网站源码。

image-20220727230912165

image-20220727231438939

!(文件操作之文件下载读取.assets/image-20220727234610951.png)

这里下文件中给出了flag的下载路径,但是要在前面加上classes来访问来访问class文件目录(详见上面的目录结构),且文件后缀为.class

image-20220727234755232

  1. 文件下载下来base64解码,即可.

image-20220727234327871

标签:文件,读取,WEB,web,INF,php,下载
来源: https://www.cnblogs.com/HzNote/p/16527021.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有