waf是拦截后缀的,首先fuzz一波换行
失落败
多个即是号

失落败
单双引号更换
失落败去掉引号
失落败
溢出Content-Disposition字段
失落败,而且不清楚是由于做事器性能缘故原由还是规则有这个,当此字段太长的时候(详细多长不清楚),正常上传图片数据包也会被丢弃。
【一>所有资源关注我,私信回答“资料”获取<一】1、200多本网络安全系列电子书(该有的都有了)2、全套工具包(最全中文版,想用哪个用哪个)3、100份src源码技能文档(项目学习一直,实践得真知)4、网络安全根本入门、Linux、web安全、攻防方面的视频(2021最新版)5、网络安全学习路线(告别不入流的学习)6、ctf夺旗赛解析(题目解析实战操作)多个Content-Disposition字段
失落败畸形协议
失落败boundary前加减空格
失落败,而且操作这边做事器会不识别上传,导致正常文件传不上去
删除Content-Type: image/jpeg
失落败溢出文件名
失落败,而且这里也有限定,太长也会导致正常上传失落效。Accept-Encoding:Accept-Encoding: gzipAccept-Encoding: compressAccept-Encoding: deflateAccept-Encoding: brAccept-Encoding: identityAccept-Encoding: 均失落败
分块传输
失落败 彷佛waf拦截的便是 Transfer-Encoding: chunked ,但是去掉chunked会要求非常
等等等后面又试了一堆,均失落败柳暗花明后面看了一眼做事器 是windows的,考试测验用windows文件命名规范来绕过,
众所周知,win的文件名是不能包含以下字符的
但是上传的时候我们可以布局,考试测验利用斜杠绕过
结果有点出乎猜想,末了到做事器的居然是.jpg,正反斜杠都这样
换一个符号,考试测验星号,被拦,都试了一遍后,创造只有冒号可以
访问一下看看是否存在www.php
文件确实传上去了,可是问题又来了,没写入内容…
后来才知道,冒号会将文件内容置空,一韶光又没了头绪
姑且后缀名绕过了吧。
0x02:内容绕过只传个0kb和不传不是一样吗,以是还是要把数据写进去,
怎么写呢?起初我是不知道的,阁下的好兄弟说三个左尖括号可以写入文件
类似这样
但是 也被waf加入规则了
…
天无绝人之路,三个弗成 我用四个
没想到四个也能写 笑了 都不知道为什么
但是问题又来了 文件名咋整,www.php会被拦截,加个冒号又会将文件置空,彷佛陷入了去世循环,一顿瞎操作后,创造这样居然写进去了,虽然也不知道为什么,可能是什么奇奇怪怪的正则机制?
既然能写文件了,那我本来以为就简大略单了,没想到噩梦才是刚刚开始
首先我之前整的一堆花里胡哨的马一个都没过去,唯一一个能过去的,之前绕过的马还不能运行(这是个坑,后面会讲),虽然这个马在我本地是可以运行的,可能这便是玄学吧哈哈。
首先正常的变量他就过不去,然后<?php 标签和某些场景稠浊时也过不去,成对的括号它也拦截,总之便是变态
举个例子:
以是才有了上面那个奇怪的马
内容绕过也是在这个根本上去过去的,本来我准备直接传这个马梭哈,但是传是传上去了,实行不了,会一贯等待,但是这个等待又不是被waf拦截了,后面才知道,这是由于php内容报错了,导致不能正常运行,就会一贯卡在那里,
那为什么会报错呢,fuzz了一波后才创造,这个做事器上必须闭合尖括号,要不然就会直接炸,明明是同样的php版本,也不知道为什么会这样,只通报第一个标签没问题,
少个闭合就炸:
但是末端的两个标签也不能去掉,是用来稠浊的,去掉直接waf都过不去
场面陷入了胶着,此时将一个完全的马传上去彷佛不太现实了,一步一步来吧,先考试测验能不能实行命令
之前讲过,规则是不许可成对括号涌现的,以是连phpinfo都实行不了
真的实行不了吗?
$a =<<< aaassasssasssasssasssasssasssasssasssasssasssassssaa;
这种赋值手腕是php的一种特性,用于办理字符串中既有单引号又有双引号这种分外情形,aa名称没意义,起什么都可以,在某些php版本中,末端的aa后不能加其他语句,否则会报错。
由于会报错,以是waf不会拦截,以是在aa;后是可以添加php代码的
好巧不巧,这做事器可以实行
既然能实行phpinfo,那system()肯定也行
传完后又转起来了
这里又一个坑,由于system中可以用双引号也可以不用,用双引号的时候一样平常是类似 ls -l 这种有空格的情形,但是whoami这种的是不须要引号的,但是这里访问一贯转明显是语法缺点,那我加上便是了。
属实是天坑
命令实行没问题了,考试测验写一句话,
果不其然被拦截了
考试测验加点注释
没问题过去了,访问一下
又转起来了
本地试了一下,创造eval这句不能在aa;后面,又是语法缺点
既然如此,那我只能放大招了,那便是fopen大法,也便是通过php脚本文件向做事器写新文件,达到绕过流量层waf检测。
先写个txt试试水,所有字符能放开的最好直接用注释分开,
访问一下www.php
没问题,解释确实实行了我们的代码。
那既然如此就好办多了,直接传个一句话
可惜,明文传输直接挂,流量还得过。
0x03:流量绕过流量绕过就比较大略了,多次编码即可,这里上传了一个三次base64解密的马
但是蚁剑编码器涌现了问题,可能是多次编码导致不知道哪里出了问题,直接上传冰蝎(这里须要把冰蝎分两段传,用fopen的a参数拼接脚本)over