黑帽SEO
免费发布泛目录 蜘蛛池 黑帽SEO工具

fastadmin前台getshell漏洞

  V1.0.0.20200506_beta(最新版)

  /application/config.php 文件中:

  即需要开启会员中心功能

  文件

  第58-67行:

  为开发者预留的钩子可以忽视不看,主要看

  此方法中的参数可控,并且将的值传入到了函数中。

  为thinkphp的解析模板函数,其返回模板文件渲染后的内容

  函数的关键内容如下:

  继续调用栈可以看下其实这个fetch()函数调用的是内置模板引擎的fetch方法, 这个方法实际上就是将要输出的页面内容赋值给一个变量,为了方便,thinkphp在对模板渲染的过程中,添加了php标签功能,使得其可以解析php代码。

  总之一句话,这个漏洞其实就是由于对传入变量过滤不严导致的模板引擎注入漏洞,只要控制了传入模板的文件,就可以利用模板本身的渲染功能,实现包含漏洞getshell

  另外需要注意的是,当验证传入的模板是否是文件时,使用的函数,这个函数在Linux下和windows下的判断会有所不同,具体如下:

  1、在linux下利用来判断类似于文件时,如果是不存在的目录,则会返回false,在windows下 ,这个目录存在与否,均返回true,如下图所示:

  1.png

  2.png

  2、在linux下,函数判可用于判断符号链接

  3、在linux下,函数会受到权限的影响,当前用户权限不足或父目录没有设置+x权限时,会返回false

  4、windows系统里面和 都可以使用,但是在linux下只能使用 来分隔路径,因此这会导致在不同系统下的返回结果不一致

  3.png

  4.png

  5、判断文件时,如果文件大小超过2^32时fastadmin前台getshell漏洞,会判断失败

  通过前文可知,这个漏洞的利用点在函数,需要注意的是,在官方文档中通常方法是用来判断一个方法是否存在,如果不存在,则进入该函数。而这里是开发者自定义的方法,因此直接传入方法,调用name参数即可。

  利用过程如下:

  在前台的会员中心,个人资料处,上传修改头像:

  5.png

  抓包后修改图片数据(满足图片头格式即可):

  6.png

  记录下路径后,成功getshell

  7.png

  在Linux下,通过这种方法会失效,因为在路径下不存在目录,由前文中的知识点可以知道,当不存在这个目录的时候,无论怎么跳转目录,函数返回的结果始终未false,因此无法利用该漏洞,如下图所示:

  8.png

  当我们在目录下创建文件夹,在利用,即可成功:

  9.png

未经允许不得转载:黑帽SEO-实战SEO技术培训、泛目录站群、蜘蛛池、流量技术教程 » fastadmin前台getshell漏洞
分享到: 更多 (0)

黑帽SEO-实战SEO技术培训、泛目录站群、蜘蛛池、流量技术教程

不做韭菜坚决不做韭菜