CTF之文件操作漏洞

一、文件上传漏洞

1、文件上传检测:
    (1)js检测(前端校验):查看源码!禁用js或burp抓包修改
    (2)mime类型检测: 是描述消息内容类型的因特网标准。

  • Content-Type(如下):


    CTF之文件操作漏洞_第1张图片
    Content-Type.jpeg
  • 测试方式
    上传正常的文件

  • 绕过方法
    上传正常的文件,然后burp抓包修改文件内容
    上传恶意的文件,然后burp抓包修改MIME类型

    (3)文件后缀名检测:黑名单或者白名单

  • 黑名单检测?
        上传文件合法性校验使用黑名单的方式,判断上传文件后缀,由于黑名单不全被攻击者绕过导致上传漏洞。
    黑名单(绕过):内置解析配置、服务器特殊配置
服务器特殊配置
     如果在Apache中.htaccess的配置有效。且可被上传。
     那可以尝试在.htaccess中写入: 
 
SetHandler application/x-httpd-php 
 
sec.jpg 即可以php脚本解析
  • 白名单(解析漏洞:中间件 先判断服务器中间件)

    (4)内容检测

二、文件包含漏洞

1、原理:php文件包含函数(四个)过滤不严:require、require_once、include、include_once。
include和require区别主要是,include在包含的过程中如果出现错误,会抛出一个警告,程序继续正常运行;而require函数出现错误的时候,会直接报错并退出程序的执行。

2、文件包含漏洞的常见使用方法
1)php包含上传文件


url?page=../../file.txt

2)php包含读文件

  • 将php源码以base64编码的形式读出来

http://192.168.5.79/index.php?url=php://filter/read=convert.base64-encode/resource=flag

3)php包含写文件
要是想利用包含写文件,必须开启PHP的url_allow_include远程URL功能,但是这个功能经过测试在5.3.0的时候已经用不了了,5.4.0直接废除了,因此在PHP 5.3.0一下版本才能实现。

url?page=php://input
post提交我们要执行的代码

4)php包含日志

5)截断包含

当PHP源码对于文件包含做出一定过滤的时候:

可以利用%00截断来绕过过滤

6)其他绕过
目录跳转的过滤我们可以构造….//….//xxx.php,方式绕过,由于他只过滤一次,我们可以利用他的过滤动态拼接目录跳转,从而绕过过滤。

三、文件读取漏洞

四、文件删除漏洞

你可能感兴趣的:(CTF之文件操作漏洞)