文件上传另类GETshell方法

电子说

1.2w人已加入

描述

  利用.user.ini 进行解析文件。

  不管是nginx/apache/IIS,只要是以fastcgi运行的php都可以;

  什么是.user.ini 先看下官方的废话。

User

  简单来讲,第一段话,反过来就是.htaccess 在特定的情况下和.user.ini作用相同。而.htaccess 利用相信大家都不陌生。

  第二句话就是字面意思了。简单讲就是后面利用的时候,你这个.user.ini在任何目录下都无所谓,php会去找到它的。.user.ini就相当于php.ini的意思了。

  第三句就是条件了。

  最后一句简单讲 .user.ini 是动态读取的,不需要去重启使配置生效,默认是300秒 重新加载INI文件。

  那么我们就可以到php.ini中寻找 具备PHP_INI_PERDIR和PHP_INI_USER 模式的INI设置了。

  其中有两个设置比较有意思,写网站的朋友或许有时候常常接触到。

  这里就不去看官方的描述了。意思简单清晰明了。类似于require();

User

  我们如果在.user.ini中设置 比如第一个 auto_prepend_file

  在.user.ini 中添加如下一串代码

 

auto_prepend_file=shell

 

User

  然后在文件shell中写入php代码

User

  当前目录下我写了一个php的首页文件。内容如下

User

  按照原理,shell文件的内容应该会被包含在 hello world 上面。

  访问一下, 执行成功。

User

  如果.user.ini中 写的是

  auto_append_file =shell

User

  那么执行的代码就在下面。

User

  最后附上我的测试环境。其中php 从5.3.29 到7.3.9 都可以。Nginx 的话是1.15版本

User

User

  总结:通过上传自定义文件.user.ini

  使php去读取其内容,将指定文件包含在一个正常的php文件中,进行解析,从而达到getshell的结果。

  该方法用在文件上传,.user.ini可以上传成功,且在上传目录下存在一个正常的php文件即可。

  可以在php文件无法正常上传,不存在文件包含漏洞,图片马上传之后无法解析的情况下进行。

  且在上传目录下存在一个正常的php文件即可。

  可以在php文件无法正常上传,不存在文件包含漏洞,图片马上传之后无法解析的情况下进行。

 审核编辑:汤梓红

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分