侧边栏壁纸
博主头像
pingc

今天不学习,明天变乐色。

  • 累计撰写 9 篇文章
  • 累计创建 1 个标签
  • 累计收到 1 条评论
标签搜索

文件包含、读取、下载漏洞

pingc
2022-04-26 / 0 评论 / 0 点赞 / 310 阅读 / 1,313 字

文件包含漏洞

什么是文件包含

指的是一个源文件可以将另一个源文件的全部内容包含进来。
使用场景是将重复部分代码单独一个文件,然后在有需要的页面直接引入该文件,减少重复代码便于维护。

而如果包含的文件是通过参数传递,且是我们可修改的,那么可以让它包含恶意文件拿到webshell。

本地包含

如果代码里有限制只能包含本地文件,那么可以上传图片马(正常图片尾部加入一句话代码),使用文件包含漏洞来执行。
有些包含地方会有限制包含的文件类型如:

<?php
    $filename  = $_GET['filename'];
    include($filename+'.html');
?>

这里限制了包含的格式是php,但我们只能上传jpg格式。
通过填充大量 *绕过(windows OS,要长于256;linux OS 长于4096)

shell.php*****************************************************************************

远程包含

如果可以远程包含,无需在目标网站上传,直接包含我们自己服务器上的木马文件。
有些包含地方会有限制包含的文件类型如:

<?php
    $filename  = $_GET['filename'];
    include($filename+'.html');
?>

通过尾部添加:?、#、空格绕过

shell.php?
shell.php%23
shell.php%20

伪协议

通过伪协议可以执行一些操作
php://filter 文件读取

php://filter/read=convert.base64-encode/resource=index.php

data:// 命令执行(php版本大于等于5.2,allow_url_include和allow_url_fopen都为开启状态)

data://text/plain,<?php phpinfo();?>

查看更多

文件下载漏洞

什么是文件下载

文件下载功能如果是通过传递的参数下载文件,没有做目录类型等过滤,且参数是我们可以修改的,那么通过修改参数就可以下载任意文件。

判断是否是存在漏洞

找到网站的下载功能页,随便下载个东西,查看下载请求格式,注意请求头,post参数,get参数等,都有可能是传参的地方。
如果有传递路径或文件名的参数,那就可能存在文件下载漏洞。
多看几个下载对比下。

存在加密传参

有些下载请求的参数可能是加密的,大部分都是base64加密,如果看到传参有疑似加密参数的,去解密看看会有惊喜。

http://xx.aabbcc.com/download?file=JUZEJUQ2JUFEayVGNyVFMiU5NSVFRiVGMyU4QSU5MCUwMA==
http://xx.aabbcc.com/download?file=/data/file/好东西.zip

文件读取漏洞

文件读取功能如果是通过传递的参数读取文件,没有做目录类型等过滤,且参数是我们可以修改的,那么通过修改参数就可以读取任意文件。
与文件下载基本一样的原理,一个下载,一个读取。

0

评论区