php安全攻防利用文件上传漏洞与绕过技巧详解

admin3年前PHP教程45
目录
前言文件上传漏洞的一些场景场景一:前端js代码白名单判断.jpg"0" cellpadding="0" cellspacing="0">
1
AddType application/x-httpd-php .php .phtml .phps .php5 .pht






说明可以通过上传.phtml|.phps|.php5|.pht这些后缀名的文件,且他们都会被解析称后缀为.php的文件。所以可以尝试使用上传xxx.php5这类的文件进行绕过

关于AddType命令的作用:

AddType 指令

作用:在给定的文件扩展名与特定的内容类型之间建立映射
语法:AddType MIME-type extension [extension] …
AddType指令在给定的文件扩展名与特定的内容类型之间建立映射关系。MIME-type指明了包含extension扩展名的文件的媒体类型。
AddType 是与类型表相关的,描述的是扩展名与文件类型之间的关系。AddType 是与类型表相关的,描述的是扩展名与文件类型之间的关系。

场景四:代码扩大黑名单判断

在该场景下,防御姿势是通过后台代码对上传的文件后缀进行判断,如果是

.php|.php5|.php4|.php3|.php2|.php1||.htm|.phtml|.pht|.pHp|.pHp5|.pHp4|.pHp3|.pHp2|.pHp1|

.Html|.Htm|.pHtml|.jsp|.jspa|.jspx|.jsw|.jsv|.jspf|.jtml|.jSp|.jSpx|.jSpa|.jSw|.jSv|.jSpf|.jHtml|.asp|

.aspx|.asa|.asax|.ascx|.ashx|.asmx|.cer|.aSp|.aSpx|.aSa|.aSax|.aScx|.aShx|.aSmx|.cEr|.sWf|.swf

这些后缀的文件则不允许上传

绕过方式——htaccsess:

使用.htaccsess文件进行绕过

.htaccsess文件的作用:

.htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能IIS平台上不存在该文件,该文件默认开启,启用和关闭在httpd.conf文件中配置。

.htaccsess文件的使用条件:

?

1
2
mod_rewrite模块开启。
AllowOverride All






构造.htaccess文件,内容如下:

?

1
AddType application/x-httpd-php .jpg"0" cellpadding="0" cellspacing="0">
1
2
3
php版本小于5.3.4
php.ini的magic_quotes_gpc为OFF状态
使用move_uploaded_file函数且参数受用户控制






此时move_uploaded_file函数遇到0x00会截断

可以将上传文件后缀改为xx.php%00进行绕过

%0a绕过

%0a绕过方式需要满足以下条件

?

1
2
Apache httpd 2.4.0至2.4.29
FileMatch正则匹配.php|.php5等后缀






该版本apache会通过$匹配后缀,而$匹配时会正则匹配某字符串结尾或以换行符结尾的一个字符串,即php[换行符]会被匹配成php

可以将上传文件后缀改为xx.php%0a进行绕过

图片马绕过

window的cmd命令制作图片马

?

1
copy 1.jpg /b + shell.php /a shell.jpg






或是利用其他图片马生成器生成

二次渲染绕过

判断图片格式后用image函数进行二次渲染

绕过方式:

抓包找到二次渲染中未被改动的地方,将一句话马插入该地方,.jpg|.png|.gif三种文件格式不同,所以构造马的方式也不同

注:gif文件最简单,直接用ue等16进制编辑器就可以改,但是jpg和png需要特殊的构造脚本

先将一张正常的jpg图片上传,上传后将服务器存储的二次渲染的图片保存下来。
将保存下来经过服务器二次渲染的那张jpg图片,用此脚本进行处理生成payload.jpg
然后再上传payload.jpg

条件竞争

当上传文件逻辑为:先move_uploaded_file函数将上传文件临时保存,再进行判断,如果不在白名单里则unlink删除,在的话就rename重命名。此时会存在条件竞争

绕过方法:
用burp开启两个intruder模块,一个用于重复上传,另一个用于重复访问。会有一定记录返回执行结果

/.绕过

move_uploaded_file函数参数可控时,可以尝试/.绕过,因为该函数会忽略掉文件末尾的/.,所以可以构造save_path=1.php/.,这样file_ext值就为空,就能绕过黑名单,而move_uploaded_file函数忽略文件末尾的/.可以实现保存文件为.php

以上就是php安全攻防利用文件上传漏洞与绕过技巧详解的详细内容,更多关于php文件上传漏洞利用与绕过技巧的资料请关注服务器之家其它相关文章!

原文链接:blog.csdn/qq_37019068/article/details/120717342

免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

厦门高防服务器租用适合部署哪些行业

厦门高防服务器租用适合部署哪些行业?高防服务器一般用于提供更高级别的安全保障和防御能力,适用于需要更高安全性和防御能力的行业和应用场景。以下是一些适合部署高防服务器的行业:金融行业:金融行业对于数据安...

纵横数据海外GPU服务器的优势

我们很荣幸向您介绍我们的海外GPU服务器,这是一款专为需要大量计算和图形处理的应用程序和任务设计的服务器,能够为您提供高效稳定的计算资源和解决方案。我们的海外GPU服务器采用了最新的图形处理器技术,拥...

laravel数据库查询结果自动转数组修改实例

在项目中再次碰见laravel中从数据库中查询到的结果是对象,用toArray也不好用,之前改过一次,印象中是在/confing/database.php, 'fetch' =>...

PHP之修改php.ini文件上传大小的配置问题案例讲解

php.iniphp.ini文件保存了php的一些重要属性,例如现在要说的文件上传的一些限制条件,关于php.ini,有一篇很好的介绍:php.ini文件详解,在windows系统中编写php的时候,...

海外跨境网络服务,跨境直播电商的首选!

我们提供合法合规稳定的海外跨境网络服务,为用户提供高效、可靠、安全的网络加速方案。在该方案中,我们采用的专线加速SDWAN技术是一种基于专用物理线路的网络加速技术,与VPN翻墙技术不同。专线加速SDW...

泉州高防服务器防御方式是怎么样的

泉州高防服务器的防御方式主要有以下几种:流量清洗:流量清洗是高防服务器最基本的防御方式,它通过对所有进入服务器的流量进行实时监测和分析,检测出异常流量并将其过滤掉,从而保证服务器正常运行。这种方式可以...