PHP文件上传bypass某狗的思考

admin 2024年2月20日08:24:03评论32 views字数 708阅读2分21秒阅读模式

PHP bypass安全狗思考

一、访问的绕过

在千辛万苦上传shell成功,但是访问却被安全狗拦截这种情况下,该如何访问到shell文件呢?

有一种办法是直接在文件后添加/。

根据大佬的解释,"应该是apache和安全狗对连接的解析不一致,apache会寻找最后一个.的位置,很可能吧后面的/抛弃掉后路由到文件,安全狗则粗略的寻找/发现后面没有字符了就直接过了",如下图所示:

直接访问被拦截

PHP文件上传bypass某狗的思考

但是添加/却不会

PHP文件上传bypass某狗的思考

二、文件后缀的绕过

在文件上传请求体中,Content-Disposition字段指定了文件上传的文件名信息。我们可以在name和filename之间插入无用的数据,让安全狗无法识别filename,测试数据大小为1810字节左右时可以绕过;

PHP文件上传bypass某狗的思考

尝试修改上传传参,在filename后面不加"

Content-Disposition: form-data; name="uploaded";filename="11.php

测试上传绕过,安全狗似乎无法匹配规则,但服务器又可以接收

PHP文件上传bypass某狗的思考

尝试超出安全狗检测数据大小,在boundry末尾插入垃圾数据实际测试boundry大小为1810长度(略有偏差),安全狗不再拦截

PHP文件上传bypass某狗的思考

绕过成功

PHP文件上传bypass某狗的思考

回车换行截断绕过

Content-Disposition: form-data; name="uploaded";filename="11.php

PHP文件上传bypass某狗的思考

三、文件内容上传绕过

使用分块传输chunk编码,绕过上传内容检测

PHP文件上传bypass某狗的思考

除了chunk编码,尝试插入冗余数据直接绕过检测并未成功

PHP文件上传bypass某狗的思考

看是检测文件头的样子,直接在图片数据后面插入一句话+文件后缀绕过

PHP文件上传bypass某狗的思考

PHP文件上传bypass某狗的思考

原文始发于微信公众号(HackingWiki漏洞感知):PHP文件上传bypass某狗的思考

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年2月20日08:24:03
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   PHP文件上传bypass某狗的思考https://cn-sec.com/archives/2505942.html

发表评论

匿名网友 填写信息