专业公司网站设计企业,分析网站建设到运营需要多少钱,wordpress小工具最近评论,做黄金理财的网站目录 WAF绕过上传参数名解析:明确哪些东西能修改?常见绕过方法#xff1a;符号变异-防匹配( ;)数据截断-防匹配(%00 ; 换行)重复数据-防匹配(参数多次)搜索引擎搜索fuzz web字典文件上传安全修复方案 WAF绕过
safedog BT(宝塔) XXX云盾 宝塔过滤的比安全狗厉害一些符号变异-防匹配( ;)数据截断-防匹配(%00 ; 换行)重复数据-防匹配(参数多次)搜索引擎搜索fuzz web字典文件上传安全修复方案 WAF绕过
safedog BT(宝塔) XXX云盾 宝塔过滤的比安全狗厉害一些在真实情况下现在很多网站都是用宝塔
上传参数名解析:明确哪些东西能修改?
Content-Disposition 表单数据一般可更改 name表单参数值不能更改改完之后数据包是有问题的跟前端的表单值会对不上这样后端会无法判断你上传的地方如果要更改那前端得跟着一起更改 Filename文件名可以更改但是更改的意义不大 Content-Type文件MIME视情况更改如果对方是mime判断的话修改之后可以达到绕过那如果对方不是的话那更改的意义就不是很大了
防护软件通过数据包文件里面的代码用我们记事本打开看到的文件代码里面是否存在后门判断出我们上传的数据包有问题从而进行拦截的 代码的变异是我们后面要学习的我们这篇文章现在不讲它 检测有参数值的后面有数据的其中文件名是比较关键的如果后缀写成.php的那绝对会被检测到。它拦截你就是检测到你php的关键字 我们常规的绕过思路就是让他检测不到php要么就是换一个脚本类型然后这个脚本类型能够执行出php两个方法都行因为我们最终目的是让这个文件执行出脚本的后缀。 采用ph p去绕过是可以成功的但是不会被后台当成一个脚本去执行这样子也是不行的 我们可以使用php. 、php 去绕过最后发现被安全狗给拦截了。
常见绕过方法
数据溢出-防匹配(xxx…) 把数据搞大数据量过多的话程序会按照程序的写法去里面找但是数据太多了程序也会有崩溃或者匹配了多少条之后他就找不下去了 有时候文件名过长的话会把服务器搞崩在form-data;那里添加大量的垃圾数据末尾结束记得加个;进行绕过最后绕过防护上传脚本。 这是垃圾数据的一个典型情况末尾是要加;是有差异的。因为你加了;默认name是一个表单注意一下不要在filename里面插没有任何意义
符号变异-防匹配( ;)
;代表的是一对一的关系结束了。没有带双引号的是程序自带的东西带双引号里面的就是不固定的一般在程序里面将单引号括起来的话基本上在程序开发里面单引号和双引号都可以。分号代表一个语句的结束数据包截止的后面是没有分号的如果加一个分号那就代表后面还有 就是很多东西他都存在一个函数替换这个单引号和双引号他能够实现的效果是一样的我们为什么不把单引号变成双引号呢防护软件可能检测的是双引号里面的东西单引号的东西不检测呢测试了一下发现还是拦截了 我们可以去掉一个单引号或者双引号相当与没有一个闭合他会认为这个数据就是:.php程序开发里面大家都知道如果你把一些东西没有用单引号和双引号括起来会误认为是一个函数或者程序里面一个自带的东西但是用双引号括起来的话会认为是一个字符串 防护软件的匹配形式只能够自己去测试才能知道是什么形式是qq.php还是qq.php:qq.php如果相当于是第三种情况的话我们就实现了绕过那就是没有匹配到因为他匹配到的话那他绝对会实现拦截 安全狗现在的匹配规则是匹配单引号、双引号里面的东西因为你不写他就能够上传成功相当于11.php没有匹配到因为他没有接收到他就绕过了他如果接收到绝对会拦截 在前面加可以绕过在后面加就不能绕过说明安全狗目前的匹配规则是取最后一个双引号然后把前面的取出来 我这个测试是没有必要的这只是说大家以后碰到同类的防护软件不管是安全狗还是宝塔安全公司里面的产品那么大家在研究的时候也是这么个研究方法大家不要自己绕过就绕过了我们学的是研究的方法后期只要脑瓜子灵活一点是没有任何问题是可以绕过的方法学不到那讲了也是白讲我希望大家学的是绕过的方法以后自己就能做这个事情 绕过思路就是尽可能让他找不到php就可以了 “x”.php绕过成功上传的是.php可以当.php执行。或者xx.php上传成功是x.php当我们知道方法就非常好玩了。
数据截断-防匹配(%00 ; 换行)
x.jpg;.php它的意义是很明显的因为安全狗也是程序当它碰到截断也是会截断的后面的.php就没有匹配到最后上传的后缀是.php就行了
换行相当于代码中有/n在中间了如果程序当中用/n来表示换行数据包识别我们这种写法其实区块传输和换行是一个原理 filename“x.p h p”
重复数据-防匹配(参数多次)
代码中匹配的递归循环对方在验证你格式后缀的时候如果他是单次验证就会造成pphpph绕过 最后一个是filename“x.php”;就可以了。这不是垃圾数据垃圾数据会比这个多很多 filename“Content-Disposition: form-data;name“upload_filex.php”最后上传成功了因为安全狗认为x.php是没有给filename的但是他实际上是给了filename。借助原有数据包自带的正常的东西把他作为干扰条件写到filename里面就实现把x.php给绕过了。 /也可以做为一个条件去绕过filename”/jpeg;/x.php/相当于一个截断中间被注释了 #Payload: 大量垃圾数据缓冲溢出(Content-Dispositionfilename等) filename“x.php filenamex.php filename“a.jpg;.php”; filename“a.php%00.jpg” filename“Content-Disposition: form-data;name“upload_file”;x.php” filename“x.jpg”;filename“x.jpg”;…filename“x.php”; filename”/jpeg;/x.php filename x . p h p 通过这篇文章让大家明白研究的方法我的研究方法就是不停的去测试但是我们去测试总有一个先后顺序前提条件下我们得知道什么东西能改什么东西不能改这个注入语句核心类是不能改的改的话这个语句是会出问题的那么最终的效果也是不能达到。同样的我们在测试上传绕过也是这么个道理你一定要知道那些地方你不能动他。动他这个数据包就会有问题那些地方你就不能改你要对能修改的地方使劲的进行修改然后在测试的时候把每个waf的东西给搞清楚以后你在研究他的时候就很容易上手安全狗是目前比较容易过的WAF有些东西其实都是一样的道理
搜索引擎搜索fuzz web字典
在做waf绕过的时候fuzz是通常的一种方式 在filename这个地方加载字典进行变化数据包发包量不要过大不然安全狗的CC开关会直接封住你的IP。 这种就是全用工具去帮你跑你就不要去思考问题我们称之为fuzz模糊测试就是用大量可能性在这里不断进行测试其中抓到一种可以成功的可能就完事了 假如你在入侵一个网站你用100种方法去测试FUZZ就是这么个情况
文件上传安全修复方案
后端验证采用服务端验证模式 因为前端可以禁用js脚本运行就可以绕过了 后缀检测基于黑名单白名单过滤 MIME检测基于上传自带类型检测 内容检测文件头完整性检测 三种检测都上比别人更安全相关代码就几个函数每个语言不一样有些写的高级点的就用面向对象的写法写的低阶写个函数也行在低阶点的就在上传的那个点写一个过滤就完事了参考如下 自带函数过滤参考uploadlabs函数 getimage不上传图片就不会载入函数只有上传图片才可以所以它从理论上已经把文件的属性给定义了。 自定义函数过滤function check file(){} 把黑白名单两个都加在一起既不是php也不是jsp他也必须是jpgpng常见的格式这里可以搞双重验证黑白两个都加自己去查一下资料检测传过来的参数名的值看一下里面有没有关键字php。 WAF防护产品宝塔云盾安全公司产品等 其它语言也有相关函数都是可以举一反三的 没有上传漏洞再做绕过始终是个0没有办法判定是否存在上传漏洞只能去盲猜。你既不能保证是否有漏洞还得去测试是否能够绕过 前期一般是先绕过WAF再去判定是否有上传漏洞因为你有时候去判定是否有上传漏洞的时候WAF已经触发也不知道能不能成功