文件上传和文件包含的各种姿势
2022-7-25 18:4:50
Author: 看雪学苑(查看原文)
阅读量:12
收藏
本文为看雪论坛优秀文章
看雪论坛作者ID:下完雪
文件上传
前端
后端
黑名单
上传陌生后缀 .php3 php5
上传配置文件 .htaccess
通过 双写 ,大小写,
基于windows 特性 ::$DATE .php空格 .php. .php:.jpg
白名单
%00截断 版本小于5.3.4 char(0) 空字符, c语言将空字符作为结束的标志,在字符串 中添加%00 解析时会将空字符之后的字符做丢弃处理
配合文件包含 上传图片码
条件竞争(通过上传后 后端处理是 先存放在删除)
修改 conten-type image/jpeg
修改MIME 类型
IIs 服务器 解析漏洞
6.0 文件解析漏洞 .asp: . jpg 分号后面的不会被解析
目录解析漏洞 .asp/1.jpg .asp目录下的文件都会被解析成asp文件
7.0 CGI 解析漏洞 .jpg/.phpApache
2.4.0-2.4.29 换行解析漏洞 \n换行
1.x 2.x 多后缀解析漏洞 .php.qwenginx
1.5.0-1.5.7 0.8.4-1.4.3 文件名逻辑解析漏洞 webshell.jpg空格 .访问 webshell/jpg%00.php 原因是错误地解析了请求的URI,错误地获取到用户请求的文件名,导致出现权限绕过、代码执行的连带影响。0.5.6 - 1.13.2 nginx整数溢出漏洞 在nginx作为反向代理服务器,且开启了缓存时,攻击者可以构造恶意的range域,来获取相应的服务器中的缓存文件头部信息,导致敏感的服务器信息泄露。包含函数 include_once include require require_once
include 只会抛出错误,不会终止
require 到包含文件不存在时 直接终止程序
本地文件包含
远程文件包含 前提是 allow_url_fopen allow_url_includephp 伪协议
flie:// 访问 本地文件系统 不受 allow_url_fopen allow_url_include 影响allow_url_include = on
php://input 读取post 请求中的数据
php://filter 读取源码zip:// 协议
可以访问 压缩文件中分子文件, 不需要指定后缀名
?fi=zip://E:\phpStudy\PHPTutorial\WWW\phpinfo.jpg%23phpinfo.txtdata:// 协议
allow_url_fopen allow_url_include 0n
用法:include.php?filename=data:text/plain,<?php php代码?>
直接插入php代码的话,有些特殊符号容易出问题 抓包修改http://127.0.0.1/include.php?file=http://127.0.0.1/phpinfo.txt防御绕过
00截断
超长字符串
目录穿越 (后端代码 包含对象中 追加 目录名)
问号截断
井号
后缀猜测
文件包含 码传不上去
中间件日志文件
一句话木马插入 url 中, 中间件解析报错 报存在 日志文件中
ssh 登录日志文件保存路径 /var/log/auth
去包含这个文件
最好是在24.00 8.00 日志重制时木马写在seesion中
session保存路径/var/lib/php/sess_phpsessid防御绕过
将需要 包含的地方 写死
过滤接收到的参数
禁止远程文件包含
限制访问范围
使用白名单
看雪ID:下完雪
https://bbs.pediy.com/user-home-957506.htm
*本文由看雪论坛 下完雪 原创,转载请注明来自看雪社区
文章来源: http://mp.weixin.qq.com/s?__biz=MjM5NTc2MDYxMw==&mid=2458459163&idx=1&sn=2b0b295153bdc792ca4d0e01ce501242&chksm=b18e2c9186f9a587247f6104339e7c500c5e89277022a6d73cf60398ed3c51253dbab906f013#rd
如有侵权请联系:admin#unsafe.sh