js检查
一般会在网页上写一个脚本来验证上传文件的后缀名。 有白名单和黑名单两种形式。
查看源码可以看到以下代码限制了上传文件的类型:
我们可以看到上传的文件类型是有限制的。
旁路法
我们可以直接删除代码中事件中文件上传时验证上传文件的相关代码。
或者不能加载全部js,也可以将html源代码复制一份到本地,然后修改对应的代码图片文件扩展名大小写怎么改,在本地提交。
Burp改包,因为是js验证,我们可以先将文件重命名为js允许的后缀名,用burp发送数据包时改成我们想要的后缀。
就可以上传成功了
黑名单
特殊可解析后缀
黑名单处理就在这里完成,我们可以通过特殊的可解析后缀来绕过它。
旁路法
之前已经总结过,这里不再重复,可以使用php3、phtml等绕过。
上传。
我们发现黑名单限制了很多后缀,但没有限制。
.file是服务器中的配置文件,负责相关目录下的网页配置。 通过该文件,可以实现:网页301重定向、自定义404页面、更改文件扩展名、允许/阻止特定用户或目录访问、禁止目录列出、配置默认文档等功能。
旁路法
我们需要上传一个包含以下内容的 .file:
这样所有的文件都会被解析成php,然后立即上传图片
后缀大小写绕过
我们发现。 也检测到了,但是情况不统一。
旁路法
只需将后缀名改为PHP即可
空间旁路
黑名单不处理文件中的空格
,可以通过在后缀中添加空格来绕过。旁路法
点旁路
文件中的点会被自动移除,所以可以在文件末尾添加点来绕过,就不详细说了
::$数据绕过
同样的功能可以通过在后缀名中添加“::$DATA”来绕过,这里不再赘述
路径拼接绕过
这里对文件名进行处理,删除文件名末尾的点,将处理后的文件名拼接到路径中
旁路法
这里我们可以构造文件名1.PHP。 。 (点+空格+点)图片文件扩展名大小写怎么改,处理后文件名变成1.PHP.,可以绕过。
双写旁路
旁路法
这里我们可以看到,要将文件名替换为空图片文件扩展名大小写怎么改,我们可以使用双写来绕过: 1.
白名单
旁路法
这里勾选-type,我们可以通过修改burp抓包来绕过:
隔断
$img_path直接拼接,因此可以利用截断绕过
旁路法
然后直接访问//1.php
00 被截断(后)
save_path是通过post传进来的,还是利用00截断,但这次需要在二进制中进行修改,因为post不会像get对进行自动解码。
旁路法
下次访问1.php
文件内容检查
文件幻数检测
主要是检测文件内容开头的文件魔数。 例如图片类型的文件魔数如下,
要绕过jpg文件的幻数检测,请在文件开头写入如下图所示的值:
值 = FF D8 FF E0 00 10 4A 46 49 46
要绕过gif文件幻数检测,请在文件开头写入上下图像的值
值 = 47 49 46 38 39 61
要绕过 png 文件的幻数检测,请在文件开头写入以下值
值 = 89 50 4E 47
然后在文件的幻数后面添加您自己的一句话木马代码。
文件相关信息检测
()函数常用来检测图像文件相关信息
只需要伪造文件的头部部分就可以了,即在幻数的基础上添加一些文件信息
像下面的结构
(...图像的一些数据...)
(...其余数据...)
该环境下的文件头检测可以通过镜像马绕过:
copy normal.jpg /b + shell.php /a webshell.jpg
文件加载检测
一般会调用API或函数进行文件加载测试、普通图像渲染测试,甚至二次渲染(过滤效果几乎最强)。 渲染/负载测试的攻击方式是代码注入绕过,二次渲染的攻击方式是攻击文件加载器本身。
对渲染/负载测试的攻击 - 代码注入绕过
可以使用图像处理软件将代码注入图片
此类工具的原理可以通过查看数据来分析。
找个空白处填写代码,不破坏文件本身的渲染,通常是图片的注释区域
基本上可以绕过渲染测试,毕竟文件结构本身就完整了
二次渲染
第二次渲染相当于捕获了原本属于图像数据的部分,然后用自己的API或者函数重新渲染。 在这个过程中,非图像数据部分直接被隔离出来
content-type,以及利用imagecreatefromgif判断是否为gif图片,最后再做了一次二次渲染。
旁路法
你得找到图片经过GD库转换后没有改变的部分,然后把没有改变的部分修改成对应的php代码。
有条件竞争
if(isset($_POST['submit'])){ $ext_arr = array('jpg','png','gif'); $file_name = $_FILES['upload_file']['name']; $temp_file = $_FILES['upload_file']['tmp_name']; $file_ext = substr($file_name,strrpos($file_name,".")+1); $upload_file = UPLOAD_PATH . '/' . $file_name; if(move_uploaded_file($temp_file, $upload_file)){ if(in_array($file_ext,$ext_arr)){ $img_path = UPLOAD_PATH . '/'. rand(10, 99).date("YmdHis").".".$file_ext; rename($upload_file, $img_path); $is_upload = true; }else{ $msg = "只允许上传.jpg|.png|.gif类型文件!"; unlink($upload_file); } }else{ $msg = '上传出错!'; }}
这里,先将文件上传到服务器,然后修改名称,然后删除文件,因此可以通过条件竞争的方式来访问之前的文件。
旁路法
然后继续访问:
上传成功。
图片文件扩展名大小写怎么改 TP漏洞文件上传汇总相关下载
- 查看详情 图片文件扩展名大小写怎么改 精通L 2023-08-20
- 查看详情 k歌伴侣PC版 v14.6 简体中文 2023-08-21
- 查看详情 易我剪辑大师 v1.6.3 简体中文 2023-08-21
- 查看详情 迅捷视频转换器电脑版 v2.7.0 简体中文 2023-08-21