当前位置:网站首页>web安全--文件上传中间件解析漏洞
web安全--文件上传中间件解析漏洞
2022-07-21 05:07:00 【narukuuuu】
前言
虚拟机还没有安装好所以还没有进行漏洞复现实操,但是又怕忘了所以就记下先。
一.Apache
1)Apache多后缀解析漏洞(低版本)
例:两个文件 1.php 和 2.php.XXX
1.php文件内容: <?php phpinfo();?>
2.php.XXX文件内容: <?php phpinfo();?>
两个文件上传后得到的结果一样,说明2.php.XXX是被当成php文件来执行的
漏洞原理
在解析2.php.XXX 文件时,先识别最后的XXX,如果无法识别出来,则向前解析直至识别成功.
2)Apache换行解析漏洞(CVE-2017-15715)
影响版本:2.4.0-2.4.29版本
漏洞原理:传送门
还没有学正则表达式,目前还是不太理解漏洞原理,姑且就先挂着其他大佬的解释吧
注:在window系统不行,因为window系统不允许换行符做文件名,虽然可以上传绕过检测,但文件不能保存.(hhhh看小迪漏洞复现的时候一直找不到上传的文件,这下解惑了!!)
个人理解:
apache在修复第一个后缀名解析漏洞(多后缀解析漏洞)时,采用正则表达式匹配后缀。
在正则表达式中,$用来匹配字符串结尾位置,但如果设置了RegExp对象的Multiline属性,$ 也匹配\n(换行)和 \r .
httpd解析php的表达式
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch>中指定的表达式可以将 '$' 匹配到恶意文件名中的换行符,而不是仅匹配到文件名的末尾。
这也造成了在有黑名单限制的文件上传中,我们可以通过在文件后缀后加上%0a从而绕过了黑名单的限制,而上传的文件 .php%0a 也可以被解析为php文件
漏洞复现:
上传一句话木马文件
<?php @eval($_POST['cmd']);?>
进行抓包改包,在文件名后缀后加上空格,在Hex中将20改成0a皆可。(实操后再补图)
3)Apache目录遍历解析漏洞
具体有空再更
二.Nginx
1)Nginx文件名的逻辑关系漏洞
影响版本:0.8.4-1.4.3/1.5.0-1.5.7
漏洞原理:主要原因是错误地解析了请求的URL,错误地获取到用户请求的文件名,导致出现权限绕过,代码执行的连带影响。
涉及正则匹配,能力有限,具体原理看大佬博客:传送门!
(实操后再上图)
2)Nginx解析漏洞
该漏洞和Nginx、php版本无关,属于用户配置不当造成的漏洞。
漏洞复现:(实操后放图,先记录一下过程先)
上传一个图片马,在该文件名后加上/XXX.php ,则会成功将该图片马解析成php文件。
漏洞原理:
后续有空再更
边栏推荐
- Differences and usage scenarios between usememo and usecallback
- 14. [string function Chapter 1]
- How to get the second child element under the first child element
- How to share files over IP
- Redis与memcached有何不同
- 10. [file opening format and its determination of whether to open]
- The C language header stdio cannot be found after Xcode upgrade H solution
- Optimization of image multi picture pages
- COMSOL heat conduction method to solve maze problem (path planning)
- Hot update in development mode to speed up the code update of development environment
猜你喜欢
OpenFOAM编程:VOF法与多孔介质模型相结合
Recommander un éditeur de markdown facile à utiliser Mark Text
Cannot read property mode of undefined
xcode升级后找不到 C语言头文件 stdio.h的解决办法
Nvm、Nrm使用教程
18. [precautions for pointer pointing to two-dimensional array]
1. Vite acquaintance and vite construction project
Crud of MySQL
Openfoam tips
OpenFoam中的VOF相变方程
随机推荐
DWVA[SQL-Injection]学习记录
a标签下载和window.location.herf下载
24. [judge whether it is an integer with bytes]
边界层积分方程与马兰格尼效应
MySQL functions
Comsol热传导方法求解迷宫问题(路径规划)
Object. prototype. toString. The principle of call()
Mysql 主从复制
线性薛定谔方程实现界面推移
TP5对接免签FM支付接口
使用Curl 实现 本地 以及远程设备的请求
MySQL import and export & View & Index & execution plan
一场优雅“面试“的感悟
window. history. back(); The problem that layer cannot be closed after returning
使用nodemon工具使Nodejs服务器自动重启
Laravel5.1 下的计划任务
thinkphp6使用EasyWeChat5.x公众号开发(二)
OpenFoam小技巧
Nodejs+Express使用 cors 中间件解决跨域问题
求助大神