网站内容管理系统上传图片(文件上传与绕过客户端检测与PHP代码检测原理绕过方法 )

优采云 发布时间: 2022-02-26 13:02

  网站内容管理系统上传图片(文件上传与绕过客户端检测与PHP代码检测原理绕过方法

)

  上传文件

  文件上传是现代互联网上的常见功能,用户可以上传图片、视频等各种类型的文件。提供给用户的功能越多,Web 攻击的风险就越大。

  文件上传漏洞 文件上传漏洞原因

  文件上传漏洞的原因(复杂),一方面是web应用开启了文件上传功能,对上传的文件没有施加足够的限制;另一方面,在程序开发部署时,没有考虑系统特性,过滤不严格;此外,攻击者通过Web服务器解析漏洞绕过限制,上传任意文件。

  文件上传漏洞 文件上传漏洞利用 Pony

  PHP:

ASP:

ASPX:

  大多数经典的一句话木马只有两部分,一是可以执行代码的功能部分,二是接收数据的部分。

  例如

  eval 是执行命令的函数,$_POST['cmd'] 是接收到的数据。eval 函数将接收到的数据作为 PHP 代码执行。这样,我们可以让插入了单句木马的 网站 执行我们传入的任何 PHP 语句。

  马来西亚

  之所以叫大马,是因为它不同于小马(一字木马),代码比较大,但是功能比较丰富。同样,马来西亚有许多脚本格式基本相同。每个团队都有自己的自定义迷宫。

  文件上传检测与绕过客户端检测与绕过检测原理Bypass方法

  由于后端PHP代码不对文件进行任何检测,所以只要绕过前端JS的验证,就可以上传WebShell。

  

  

  

  

Upload a new file:

  服务器检测和绕过

  对于文件上传,仅从Web前端检测显然是不够的,因此服务器端尤为重要。一般的服务器端检测包括以下几个方面:

  后缀检测和绕过

  检测原理

  通过函数pathinfo()获取文件后缀,将后缀转换为小写,判断是否为php。

  

  绕过方法一:黑名单 - 案例绕过

  

  绕过方法一:黑名单--列表列表绕过(黑名单以外的后缀名)

  有些中间件允许解析其他文件后缀,比如asa、cer之类,或者在httpd.conf配置文件中,配置如下代码解析php、php3、phtml文件。所以上传一个后缀为 php3、phtml 的文件。

  

  绕过方法一:黑名单--Windows 功能

  Windows 下不允许使用一些特殊的文件名命名方法。使用BurpSuite抓包修改后缀名,绕过验证后上传文件。Windows 以后会自动删除添加的,但是需要注意的是 Unix/Linux 系统没有这个功能。例如:

  

  绕过方法2:白名单

  白名单绕过需要配合文件收录或解析漏洞

  

  绕过方法三:.htaccess 文件攻击

  

  

  

  例如:当文件名[info.php.png]收录关键字[.php],.htaccess文件内容如下时,会执行info.php.png中的代码。

  

  

setHandler application/x-httpd-php

  上传htaccess文件可以让服务器将符合PHP语法规则的文件解析为PHP

  绕过方法4

  结合Apache文件解析机制,文件后缀从右到左解析。如果后缀名无法识别,则继续判断,直到遇到可解析的后缀。

  

  MIME 类型检测和绕过

  MIME(多用途 Internet 邮件扩展)是描述邮件内容类型的 Internet 标准。MIME 消息可以收录文本、图像、音频、视频和其他特定于应用程序的数据。常见的 MIME 类型如下:

  文件扩展名Mime-Type

  .js

  应用程序/x-javascript

  .html

  文本/html

  .jpg

  图片/JPEG

  .png

  图片/png

  .pdf

  申请/pdf

  检测原理

  判断$_FILES["file"]["type"]是否为图片格式(image/gif, image/jpeg, image/pjpeg),如果不是,则不允许上传。在 HTTP 协议中,文件的 MIME 类型由 Content-Type 字段表示。$_FILES["file"]["type"]的值是从请求包中的Content-Type中获取的。

  

  旁路法

  通过抓取数据请求包,上传php文件时Content--Type值为applcation/octer-stream,上传jpg文件时Content-Type值为imaag/jpeg。可以修改文件类型以绕过。

  

  文件内容检测及绕过检测原理

  使用getimagesize()函数获取图片的宽高信息。如果上传的图片不是图片,则无法获取信息。

  文件相关信息检测

  检测图片文件相关信息

  

  文件幻数检测

  

  

  旁路法

  在脚本文件开头添加图片对应的header值,或者在图片后面写脚本代码

  制作图片马

  参数 /b 指定为图像/声音文件以二进制格式复制和合并文件

  参数/a指定复制和合并ASCII格式的文件,用于txt等文档文件

  

  图马上传的漏洞无法解析,需要配合文件解析或文件收录漏洞

  00 截断检测与旁路检测原理

  截断漏洞的核心是chr(0),这个字符不是空的(NuII),也不是空字符(" "),也不是空格。当程序输出变量chr(< @0) , chr(0) 后面的数据会被停止,也就是说被误认为是终止符,直接忽略后面的数据,导致漏洞。由于00代表终止符, PHP 会将 00 后面的所有字符都删除。

  截断条件:PHP版本小于5.3.4、magic_quotes_gpc为OFF

  获取方法

  

  POST 方法

  

  条件竞态检测和绕过检测原理

  有的网站文件检测逻辑是先允许任意文件上传,然后检查文件内容是否收录可执行脚本,如果有则删除。此处使用 sleep() 函数来模拟确定是否收录脚本所需的时间。

  旁路法

  利用成功上传和删除文件的时间差,上传一个.php文件并在删除前立即访问会自动生成一个新的php文件,新文件不会被删除。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线