CTF之文件操作漏洞
一、文件上传漏洞
1、文件上传检测:
(1)js检测(前端校验):查看源码!禁用js或burp抓包修改
(2)mime类型检测: 是描述消息内容类型的因特网标准。
- Content-Type(如下):
文章图片
Content-Type.jpeg - 测试方式
上传正常的文件
- 绕过方法
上传正常的文件,然后burp抓包修改文件内容
上传恶意的文件,然后burp抓包修改MIME类型
- 黑名单检测?
上传文件合法性校验使用黑名单的方式,判断上传文件后缀,由于黑名单不全被攻击者绕过导致上传漏洞。
黑名单(绕过):内置解析配置、服务器特殊配置
服务器特殊配置
如果在Apache中.htaccess的配置有效。且可被上传。
那可以尝试在.htaccess中写入:
SetHandler application/x-httpd-php
sec.jpg 即可以php脚本解析
- 白名单(解析漏洞:中间件 先判断服务器中间件)
二、文件包含漏洞 1、原理:php文件包含函数(四个)过滤不严:require、require_once、include、include_once。
include和require区别主要是,include在包含的过程中如果出现错误,会抛出一个警告,程序继续正常运行;而require函数出现错误的时候,会直接报错并退出程序的执行。
2、文件包含漏洞的常见使用方法
1)php包含上传文件
url?page=../../file.txt2)php包含读文件
- 将php源码以base64编码的形式读出来
http://192.168.5.79/index.php?url=php://filter/read=convert.base64-encode/resource=flag3)php包含写文件
要是想利用包含写文件,必须开启PHP的url_allow_include远程URL功能,但是这个功能经过测试在5.3.0的时候已经用不了了,5.4.0直接废除了,因此在PHP 5.3.0一下版本才能实现。
url?page=php://input4)php包含日志
post提交我们要执行的代码
5)截断包含
当PHP源码对于文件包含做出一定过滤的时候:
可以利用%00截断来绕过过滤
【CTF之文件操作漏洞】6)其他绕过
目录跳转的过滤我们可以构造….//….//xxx.php,方式绕过,由于他只过滤一次,我们可以利用他的过滤动态拼接目录跳转,从而绕过过滤。
三、文件读取漏洞 四、文件删除漏洞
推荐阅读
- PMSJ寻平面设计师之现代(Hyundai)
- 太平之莲
- 闲杂“细雨”
- 七年之痒之后
- 深入理解Go之generate
- 由浅入深理解AOP
- 期刊|期刊 | 国内核心期刊之(北大核心)
- 生活随笔|好天气下的意外之喜
- 感恩之旅第75天
- python学习之|python学习之 实现QQ自动发送消息