任意文件下载+读取+删除

漏洞判断

如果传递的参数是一个php文件:

被解析执行就是文件包含漏洞

显示出源码就是文件读取漏洞

提示是下载就是文件下载漏洞

漏洞产生

       文件下载处没有对用户请求的文件类型和下载路径进行过滤。导致用户通过路径回溯符../等相关操作,跳出了程序本身的限制目录,然后再利用文件下载功能,使前端下载请求可以下载服务器中的任意文件。

漏洞利用

文件下载:利用下载获取源码或数据库配置文件及系统敏感文件为后续出思路

案例:某网站存在任意文件下载漏洞

根据url样式判断可能存在文件下载

先下载他自己试一试,发现成功下载

查看文件未得到什么有用的信息

下载网站首页文件index.php看看,加入../就是下载网站的首页文件,不加下载的就是files目录下的index.php

打开查看信息,发现使用的是Joomla程序搭建的网站

就可以浏览器搜索joomla的数据库配置文件路径

下载配置文件

打开查看,成功获取账号密码等信息

我们还可以尝试下载一些网站的系统文件等

文件读取

       文件读取漏洞,就是攻击者通过一些手段绕过应用程序的限制读取到服务器上开发者禁止读取的文件。主要读取的文件是服务器的各种配置文件、文件形式存储的密钥、服务器信息等

文件读取漏洞通常是由于应用程序没有对用户的输入进行验证和过滤导致的

利用

基本和文件下载的利用方法类似

php文件读取函数:

file_get_contents

fread

fgets

fgetss

file

parse_ini_file

readfile  

highlight_file

show_source

案例:文件读取-MetInfo6.0 cms-任意读取

流程:特定函数搜索-寻触发调用-构造Payload测试

使用代码审计工具seay源代码审计系统查看源码,搜索readfile读取函数

查看代码,发现大概率存在文件读取漏洞

全局搜索old_thumb,看是谁调用了

发现在thumb.php文件里面出现了,虽然没有调用代码,但应该就是这个文件触发的

找到触发文件之后就可以构造payload了

浏览器搜索metinfo6.0 cms的数据库配置文件路径

进行读取,

payload:/include/thumb.php?dir=http\..\..\config\config_db.php

浏览器直接访问是无法回显内容的

需要抓包

为什么payload要加一个http

因为是源码设置的访问规则

案例:74cms——后台存在任意文件删除

php文件删除函数:unlink

审计工具打开源码,搜索函数unlink

查看代码,得知参数名act=del_img时执行删除操作,接收删除内容的参数名是img

得知调用删除功能的是admin_article.php文件

网站根目录创建文件1.txt

构造payload:/admin/admin_article.php?act=del_img&img=../../1.txt

访问删除操作,提示有csrf防御,应该是同源策略,重新访问网站后台即可

重新访问后台

再次访问删除操作,提示删除成功

查看根目录,1.txt成功被删除

总结黑盒测试思路:

1.看url中参数名的中文翻译。如:参数名是download,中文是下载,就可能存在任意文件下载

2.看参数值是不是目录或者文件名。

3.查看网站的下载、读取、删除等功能点,修改参数值进行测试。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiaoheizi安全

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值