本文章仅做学习交流、如有违法行为,上传者自行负责
原理:
原理案例
检测
怎么寻找文件下载漏洞?
利用方面
文件目录的获取分两种
文件类型:常见文件、敏感文件
实际案例演示
Javaweb文件下载代码
当贝市场(通过功能点找到漏洞)
RoarCTF2019-文件读取真题复现-比赛(通过查看参数值发现漏洞 )
小米路由器(文件读取)CVE-2019-18371
原理:
由于网站文件直接进行访问时看见的是不一样的,源代码时不对外进行公开的,
而通过网站自带的下载功能进行下载,可以浏览到该网站的源代码
原理案例
这里以pikachu靶场为例首先网站存在下载,点击链接就会对文件进行下载
复制下载链接,对下载地址和文件地址进行分析进行分析
文件下载地址:
http://192.168.248.129:801/pikachu/vul/unsafedownload/execdownload.php?filename=kb.png
文件地址:
http://192.168.248.129:801/pikachu/vul/unsafedownload/download/kb.png
当进行替换?filename=文件名,所带的文件名字,随着下载的文件也会变动
说明所下载的文件是根据filename=所传参的文件名 ,而我们想下载比他高一级目录的文件
如:进行下载unsafedownload目录下的execdownload.php文件就是:通过…/访问上一级
http://192.168.248.129:801/pikachu/vul/unsafedownload/execdownload.php?filename=../execdownload.php
那么此时就有人问,那他怎么知道有哪些目录和目录下存在什么文件
这个是可以通过目录扫描工具和目录爬行进行获取的,也可以通过已经获取的可见文件进行分析
好比当我们下载了execdownload.php,打开之后发现这里有一个inc
可能存在inc这个目录
果不其然
如果遇到这种情况,可能是因为phpstudy中的允许目录没有开
此时在inc目录下,可以看见有存在的一些配置文件,当我们想进行下载
就可以尝试使用以上方式进行推断,通过…/进行跨目录
然后根据分析我们需要往上跨三层目录,然后进入inc目录下进行下载function.php文件
http://192.168.248.129:801/pikachu/vul/unsafedownload/execdownload.php?filename=../../../inc/function.php
config.inc.php是数据库的一个敏感文件,也是可以通过扫描工具扫出来的
此时进行下载到的config.inc.php文件,将其打开就是数据库的一个配置文件,
可以对后续渗透有所帮助,数据库默认不是root不会进行连接,但是也不能保证人家不会开启
通过网站自身下载功能进行下载一些自己想要的文件
检测
怎么寻找文件下载漏洞?
通过手工去寻找存在下载的一个功能对方,以及参数值,传参值可能会进行加密
#参数值后接上是否为文件或文件链接
read.xxx?filename=
down.xxx?filename=
readfile.xxx?file=
downfile.xxx?file=
../ ..\ ./ ./等
%00 ? %23 %20 .等
&readpath=、&filepath=、&path=、&inputpath=、&url=、&data=、
&readfile=、&menu=、META-INF=、WEB-INF=、
下载漏洞哪里测?
围绕网站下载功能点进行查找,
下载漏洞怎么判断存在?(如存在加密先进行解密)
然后查看下载点传参值后面是不是可以进行修改,是否未一个文件名
利用方面
该漏洞利用方面不会直接影响到权限丢失,但是可以对后续的渗透做更多得帮助
文件目录的获取分两种
1、扫描工具爬行或扫描地址(御剑扫描)
2、下载公开的文件代码中分析路径和包含文件获取、url查看分析
网上找到一样的源文件程序,查看他的代码框架分布
文件类型:常见文件、敏感文件
都是可以通过用爬行工具,目录扫描工具
可见文件: 如在进行访问文件的时候url上可以探针到文件地址
敏感文件:关于数据库配置文件、接口文件、密钥信息文件(分析或者扫描)
如:数据库配置文件可以获取数据库账号密码然后进行数据库连接,从而找到网站的后台账号密码
通常进行下载配置文件,但是同样除了配置文件之外也可以下载Windows和Linux自带的系统文件
这些都是默认存在的 (优先配置文件,如果找不到尝试系统文件)
任意文件下载漏洞 - N南风北巷X - 博客园
(cnblogs.com)
实际案例演示
Javaweb文件下载代码
javaWeb实现文件下载_做个坏男人的博客-
CSDN博客
(无论什么脚本都是可能存在下载漏洞的)
当贝市场(通过功能点找到漏洞)
智能电视应用市场_安卓电视软件商店_Android TV APP下载_智能电视游戏下载_ZNDS智能电视网
对其进行下载文件,然后查看下载地址
http://down.znds.com/getdownurl/?s=L2Rvd24vMjAyMjA4MzAvdHhzcDE2MTU4XzEwLjMuMC4xMDEyX2RhbmdiZWkuYXBr
![](https://img-
blog.csdnimg.cn/454b238cf3e64a0ea94d99161e0cf22e.png)此时我们发现该地址进行了加密,我们对其后面加密进行解密
/down/20220830/txsp16158_10.3.0.1012_dangbei.apk
得出访问以下地址链接则会进行下载,那么我们如果把地址进行更改,
http://down.znds.com/getdownurl/?s=/down/20220830/txsp16158_10.3.0.1012_dangbei.apk
好比下载chinaid.php文件![](https://img-
blog.csdnimg.cn/3916b0653bb64039a2742ff0cecd76ff.png)
则是
http://down.znds.com/getdownurl/?s=绝对路径/chinaid.php
进行加密
http://down.znds.com/getdownurl/?s=加密内容
RoarCTF2019-文件读取真题复现-比赛(通过查看参数值发现漏洞 )
地址:
BUUCTF在线评测
(buuoj.cn) BUUCTF在线评测
(buuoj.cn)
进入之后时一个登录界面
尝试弱口令登录无效
![](https://img-
blog.csdnimg.cn/07b3ba4527234a5a8647b98c3bd6ab77.png)点击help文件,发现传参和文件名上去,可能存在文件下载漏洞
此时我们会发现这里提示了提示文件不存在,并可能是Java编写(不能只相信别人告诉你的)
而Java中下载是需要以post方式进行提交的,所以我们换成post提交方式,
发现会进行下载
然后拿到文件被告知flag不在这里
通过抓包发现对方是openresty服务器,确实是所属Java语言
那么就可以进行(这里重点讲的是文件下载,那么回到主题)
而在Java中存在这么一个配置文件:WEB-INT/WEB.XML存在(安全目录)
[web-inf_百度百科 (baidu.com)](https://baike.baidu.com/item/web-
inf/4476359#:~:text=WEB-
INF%E6%96%87%E4%BB%B6%E5%A4%B9%E4%B8%8B%E9%99%A4%E4%BA%86web.xml%E5%A4%96%EF%BC%8C%E8%BF%98%E5%AD%98%E4%B8%80%E4%B8%AAclasses%E6%96%87%E4%BB%B6%E5%A4%B9%EF%BC%8C%E7%94%A8%E4%BB%A5%E6%94%BE%E7%BD%AE,%2A.class%E6%96%87%E4%BB%B6%EF%BC%8C%E8%BF%99%E4%BA%9B%20%2A.class%E6%96%87%E4%BB%B6%E6%98%AF%E7%BD%91%E7%AB%99%E8%AE%BE%E8%AE%A1%E4%BA%BA%E5%91%98%E7%BC%96%E5%86%99%E7%9A%84%E7%B1%BB%E5%BA%93%EF%BC%8C%E5%AE%9E%E7%8E%B0%E4%BA%86jsp%E9%A1%B5%E9%9D%A2%E5%89%8D%E5%8F%B0%E7%BE%8E%E5%B7%A5%E4%B8%8E%E5%90%8E%E5%8F%B0%E6%9C%8D%E5%8A%A1%E7%9A%84%E5%88%86%E7%A6%BB%EF%BC%8C%E4%BD%BF%E5%BE%97%E7%BD%91%E7%AB%99%E7%9A%84%E7%BB%B4%E6%8A%A4%E9%9D%9E%E5%B8%B8%E6%96%B9%E4%BE%BF%E3%80%82
“web-inf_百度百科 (baidu.com)”)
打开文件后会发现,存在其他文件的一个目录情况,以及我们需要的flag
由于是Javaweb,所以我们直接访问是不行的,需要通过配置文件的class目录加上以下地址访问
并且是class文件,然后返回的结果中存在提示flag就在附近![](https://img-
blog.csdnimg.cn/bbe50f6c1f964b68a872cc5885a0b15e.png)
通过提示,发现上方存在base64加密,进行解密获取到了flag
小米路由器(文件读取)CVE-2019-18371
参考文章:小米路由器远程任意文件读取漏洞(CVE-2019-18371) - 知道创宇 Seebug
漏洞平台
由于未找到适合的测试对象,所以没有进行测试
这个实例主要是想说明,无论是在web网页上还是硬件设备上,都可能进行存在下载漏洞
在其尾部更换此链接即可进行下载配置文件api-third-party/download/extdisks…/etc/shadow
学习网络安全技术的方法无非三种:
第一种是报网络安全专业,现在叫网络空间安全专业,主要专业课程:程序设计、计算机组成原理原理、数据结构、操作系统原理、数据库系统、 计算机网络、人工智能、自然语言处理、社会计算、网络安全法律法规、网络安全、内容安全、数字取证、机器学习,多媒体技术,信息检索、舆情分析等。
第二种是自学,就是在网上找资源、找教程,或者是想办法认识一-些大佬,抱紧大腿,不过这种方法很耗时间,而且学习没有规划,可能很长一段时间感觉自己没有进步,容易劝退。
如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
第三种就是去找培训。
接下来,我会教你零基础入门快速入门上手网络安全。
网络安全入门到底是先学编程还是先学计算机基础?这是一个争议比较大的问题,有的人会建议先学编程,而有的人会建议先学计算机基础,其实这都是要学的。而且这些对学习网络安全来说非常重要。但是对于完全零基础的人来说又或者急于转行的人来说,学习编程或者计算机基础对他们来说都有一定的难度,并且花费时间太长。
第一阶段:基础准备 4周~6周
这个阶段是所有准备进入安全行业必学的部分,俗话说:基础不劳,地动山摇
第二阶段:web渗透
学习基础 时间:1周 ~ 2周:
① 了解基本概念:(SQL注入、XSS、上传、CSRF、一句话木马、等)为之后的WEB渗透测试打下基础。
② 查看一些论坛的一些Web渗透,学一学案例的思路,每一个站点都不一样,所以思路是主要的。
③ 学会提问的艺术,如果遇到不懂得要善于提问。
配置渗透环境 时间:3周 ~ 4周:
① 了解渗透测试常用的工具,例如(AWVS、SQLMAP、NMAP、BURP、中国菜刀等)。
② 下载这些工具无后门版本并且安装到计算机上。
③ 了解这些工具的使用场景,懂得基本的使用,推荐在Google上查找。
渗透实战操作 时间:约6周:
① 在网上搜索渗透实战案例,深入了解SQL注入、文件上传、解析漏洞等在实战中的使用。
② 自己搭建漏洞环境测试,推荐DWVA,SQLi-labs,Upload-labs,bWAPP。
③ 懂得渗透测试的阶段,每一个阶段需要做那些动作:例如PTES渗透测试执行标准。
④ 深入研究手工SQL注入,寻找绕过waf的方法,制作自己的脚本。
⑤ 研究文件上传的原理,如何进行截断、双重后缀欺骗(IIS、PHP)、解析漏洞利用(IIS、Nignix、Apache)等,参照:上传攻击框架。
⑥ 了解XSS形成原理和种类,在DWVA中进行实践,使用一个含有XSS漏洞的cms,安装安全狗等进行测试。
⑦ 了解一句话木马,并尝试编写过狗一句话。
⑧ 研究在Windows和Linux下的提升权限,Google关键词:提权
以上就是入门阶段
第三阶段:进阶
已经入门并且找到工作之后又该怎么进阶?详情看下图
给新手小白的入门建议:
新手入门学习最好还是从视频入手进行学习,视频的浅显易懂相比起晦涩的文字而言更容易吸收,这里我给大家准备了一套网络安全从入门到精通的视频学习资料包免费领取哦!
如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
![](https://i-blog.csdnimg.cn/blog_migrate/71fd7de3a55bc3e6b2a2306b60e62891.jpeg)