跳转到帖子
  • 游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

    赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

    TheHackerWorld官方

文件操作之文件下载读取


HACK1949

推荐的帖子

文件操作安全

不安全的文件下载概述

文件下载功能在很多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)

2816516-20220727235049873-1259702409.png

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

image-20220727234755232

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

image-20220727234327871

链接帖子
意见的链接
分享到其他网站

黑客攻防讨论组

黑客攻防讨论组

    You don't have permission to chat.
    • 最近浏览   0位会员

      • 没有会员查看此页面。
    ×
    ×
    • 创建新的...