网络安全:简单地介绍关于文件包含漏洞

这次,小编来介绍一下“关于文件包含漏洞”。
文件包含漏洞,一般来说,可以是这两种:文件包含漏洞分为本地文件包含(Loacl File Inclusion,LFI)和远程文件包含(Remote File Inclusion,RFI))
其实呢,文件包含漏洞是一种最常见的漏洞类型,它会影响依赖于脚本运行时的web应用程序。当应用程序使用攻击者控制的变量构建可执行代码的路径时,文件包含漏洞会导致攻击者任意控制运行时执行的文件。
关于网络安全
关于网络安全
文件包含漏洞的出现及危害
文件包含漏洞是一种最常见的漏洞类型,它会影响依赖于脚本运行时的web应用程序。当应用程序使用攻击者控制的变量构建可执行代码的路径时,文件包含漏洞会导致攻击者任意控制运行时执行的文件。如果一个文件包含这个漏洞,为了方便起见,经常在开发阶段就实施。由于它经常用于程序开发阶段,所以这就为后来的攻击埋下了伏笔并导致了各种基于文件的攻击。文件包含漏洞主要是程序员把一些公用的代码写在一个单独的文件中,然后使用其他文件进行包含调用,如果需要包含的文件使用硬编码,一般是不会出现安全问题,但是有时可能不确定需要包含哪些具体文件,所以就会采用变量的形式来传递需要包含的文件,但是在使用包含文件的过程中,未对包含的变量进行检查及过滤,导致外部提交的恶意数据作为变量进入到了文件包含的过程中,从而导致提交的恶意数据被执行。文件包含漏洞分为本地文件包含(Loacl File Inclusion,LFI)和远程文件包含(Remote File Inclusion,RFI)。这种漏洞貌不惊人,却危害很大。通过文件包含漏洞,可以读取系统中的敏感文件,源代码文件等,如密码文件,通过对密码文件进行暴力破解。若破解成功则可获取操作系统的用户账户,甚至可通过开放的远程连接服务进行连接控制。另外不管是本地文件包含还是远程文件包含,文件包含漏洞还可能导致执行任意代码。
本地文件包含本地文件包含就是通过浏览器包含web服务器上的文件,这种漏洞是因为浏览器包含文件时没有进行严格的过滤允许遍历目录的字符注入浏览器并执行。首先,当值可以直接被控制时,你就会有一个非常类似的如下的代码片段。

如果你可以找到上面的代码,那么就有一个直接包含的$文件,你可以控制它。

请注意:该文件可以是任何类型,无论它是被删除的文件类型、图片还是任意的内容,都包括在内。

首先,在当前文件夹中创建任意后缀的任意文件,如:file.txt(即使是像file.jpg这样的图片格式,则会产生以下效果)。

将文件的内容设置为:

关于网络安全
关于网络安全

此时,文件包含漏洞还包含当前服务器中的其他文件,同时支持包含Web应用程序的目录,如下所示:

尝试包括你的硬盘的一些内容,例如:C:\WINDOWS\system.ini。

关于网络安全
关于网络安全

如果你这样做,就可以在浏览器上看到任何文件的输出内容。

这只有当你有完全控制和文件类型没有进一步指定时才有效。

那么,如果代码片段变成如下这样,你该怎么做?

在这种情况下,你可以尝试按照上面的方法:

这将导致以下的输出:

关于网络安全
关于网络安全

你可以看到,如果后缀是固定的,就像上图一样,你不会找到前面包含的文件。

搜索的文件名是:./Include.txt.php。

所以这里有另一种方法:%00到达时截断一个字符串。这个技巧也被广泛应用于不同的领域,我不会在这里再详述,如果想详细了解,请点此

在PHP中使用%00:

1.PHP版本<5.3(不包括5.3);

2. PHP `magic_quotes_gpc = off`;

3.PHP不会在收到的参数中使用addslashes函数,例如上面代码中的$ _GET [‘file’],不过在PHP版本5.3或更高版本中,此问题已得到解决。

如果打开gpc或者使用了加法器函数,序列将被正确地转义。

首先,你可以尝试如果gpc打开会发生什么(效果与使用该函数相同)。

关于网络安全
关于网络安全
关于网络安全
关于网络安全

如果你启用了gpc标志,你可以直接看到这个过程是如何发生的。

接下来可以看看5.3版本中的情况:

关于网络安全
关于网络安全
关于网络安全
关于网络安全

这里也没有明显的效果。

所以你可以看到,只要满足上述三个条件,就可以使用%00。

首先,你要将PHP版本更改为5.2,并在php.ini更改为 magic_quotes_gpc = on tomagic_quotes_gpc = off.后重新启动Apache。

这使你就能够在尝试时使用截断。

关于网络安全
关于网络安全

这时可以看到,你已经成功地使用了其中的截断。

那么文件只包含了包含的功能吗?当然不是,之所以会这样,是因为你可以控制可以包含的内容。

你可以创建一个文件:shell.txt来进一步利用这个漏洞。

关于网络安全
关于网络安全

你可以看到,其中也包括了shell。

那么两者有什么区别呢?其实没有什么区别,原理是一样的,但是第一个是用后缀来介绍的,第二个是固定在程序后缀后面的。但是可以使用%00,因为当程序流(program stream )遇到%00终止符(terminator)时它会直接终止。

远程文件包含

远程文件包含就是允许攻击者包含一个远程的文件,一般是在远程服务器上预先设置好的脚本。 此漏洞是因为浏览器对用户的输入没有进行检查,导致不同程度的信息泄露、拒绝服务攻击 甚至在目标服务器上执行代码。

本地文件包含与远程文件有着相同的原理,但前者只能包含服务器上存在的文件,而后者可以包含远程服务器上的文件。

对于远程文件,你需要考虑以下2点:

1.在php.ini中需要allow_url_include = on和allow_url_fopen= on

2.所需的远程文件后缀不能与目标服务器的语言相同,如目标服务器解析PHP代码,则远程文件后缀不能为.php。

让我解释一下第二点,如果你的远程文件具有.php后缀,并且你的远程文件内容如下所示:

那么在远程服务器执行phpinfo()之后,你就可以获得目标服务器的内容。由于它不会运行代码,所以包含的信息不是目标服务器,而是远程服务器。

如下所示:

关于网络安全
关于网络安全

这是我的PHP5.6版本的远程设备信息,目标设备是5.2版本。

接下来是包含文件:

关于网络安全
关于网络安全

你可以看到,包含文件后,你的远程设备发生了变化,这是为什么呢?

由于目标服务器不包含此代码:

此时,远程服务器会执行此代码的源代码,如下所示:

关于网络安全
关于网络安全

所以为了使这个攻击开始运行,你需要做一些修改:

1.修改配置

关于网络安全
关于网络安全

2.修改文件后缀

关于网络安全
关于网络安全

此时,你可以再来尝试一下包含的攻击向量:

关于网络安全
关于网络安全

那么你可以看到所需的信息在此包含之后返回,并且你的目标设备信息不再改变。

接下来,你要再次为远程文件包含做一个shell示例。

关于网络安全
关于网络安全
关于网络安全
关于网络安全

远程文件包含使用的前提是,符合本地文件包含的前提并符合远程文件包含其可用性的前提。

文件包含许多伪协议

文件中可以包含不同的伪协议,我将在下面演示其中的一些:

1.data:text/plain or data: text/plain; base64 2.php://input 3.php://filter 4.file:// 5.zip://

其他协议可以在官方文档中找到。

data:text/plain

输出直接显示在相应的URL中,显示参数:data:text / plain。

然后你需要执行如下所示的php代码:

关于网络安全
关于网络安全

data:text/plain; BASE64

有另一种方法来使用data: text/plain; base64,不过此时你需要使用base64编码来执行PHP代码,base64php代码如下所示:

关于网络安全
关于网络安全

## php://input

php://input访问请求的原始数据的只读流(read-only stream),会将post请求中的数据作为php代码执行。

关于网络安全
关于网络安全

你可以看到程序自动添加了一个.php后缀,因此使用包括php://input,将自动添加.php,所以它肯定不能正常工作。

此时,你可以参考以上的%00技巧来截断文件路径。

关于网络安全
关于网络安全
关于网络安全
关于网络安全

你可以看到终止符(terminator)是非常强大的。

php://filter

php://filter可以读取php文件的代码base64编码的输出并将其返回给你。

例如,你想读取一个PHP文件,但不希望它是正常的PHP。你可以通过php://filter/read=convert.base64-encode/resource=

../ 读取文件代码的内容。

关于网络安全
关于网络安全

解码base64后,你可以像正常情况一样获取内容:

关于网络安全
关于网络安全

file://

file://用于访问本地文件系统,不受allow_url_fopen orallow_url_include的影响,你可以使用file:// absolute / path / to / file来获取。

关于网络安全
关于网络安全

zip://

zip://可以访问zip文件中的文件,但它需要一个绝对路径。你可以使用zip://[archive absolute path] # [compressed file name]在本地创建一个文件并将其压缩到一个zip压缩文件中。

关于网络安全
关于网络安全

此时,你就可以填入绝对路径和文件的名称了。那么,你可能会有两个疑问?

为什么你不能成功显示包括zip://的错误?

这其中就包含zip://C:/phpStudy/WWW/include/phpinfo.zip.php,这是因为你不想包含这个文件,而是想把这个文件包含在zip里。

为什么是#以后的值?

因为#会忽略它后面的参数,所以你需要在表单中使用%23。还有一点就是,包含的文件以.php结尾,但你压缩了php后缀的文件。

所以如下所示,你不需要这个后缀。

关于网络安全
关于网络安全

原创文章,作者:SONIC SEO,如若转载,请注明出处:https://www.seo388.com/filebug/

(2)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年10月11日 15:53
下一篇 2019年10月12日 17:57

相关推荐

  • 网站被镜像反向代理应该如何解决?

    这次,小编来给大家说说关于一种黑技术 ”反代“,如果被反向代理了,那就是说整个站几乎都被镜像代理了,这对自己的站危害甚大啊。那么,网站被镜像反向代理应该如何解决呢?接下来,小编就给大家说说吧。 如果某天查看Nginx日志发现自己的网站被设置301 跳转了,想想只是跳转,没实际危害就算了。但是,如果站长你查询日志,发现居然变本加厉反向代理了整个站,再查发现居然…

    2019年11月26日
    02.2K
  • 如果网站被黑被劫持了怎么办?

    网站遇到被黑,被恶意镜像怎么办?这是站长们最头疼的问题,只是有网站都有遇到过。今天无忧哥具体来讲讲几个安全防护和解决的办法,以供参考。 问:我的网站被同行恶意的镜像网站,被降权了怎么办? 网站被黑被恶意镜像,被植入垃圾代码,现象屡见不鲜。站长管理员应该及时发现分析网站数据和代码。不要等着网站出现了危机,再去进行恢复和处理。带来的后果严重影响排名的周期和SEO…

    2019年3月13日
    0941
  • 织梦DedeCMS的安全设置-视频

    DedeCMS织梦安全设置视频 建制人:无忧 主题:织梦安全设置 时长:7分钟 第一部分: http://cloud.video.taobao.com//play/u/157083488/p/2/e/6/t/1/32520276.mp4 有小伙伴说视频不清楚,请复制以下地址打开观看。 http://cloud.video.taobao.com//play/u…

    2019年3月13日
    0793
  • 转载:网站安全防护:记一次入侵网站的过程

    网站安全案例分享:记一次入侵网站的过程!某集团、招聘网集体沦陷;通过这个网站入侵的案例告诫大家做好网站安全的必要性,日常操作一定要谨慎仔细,稍有不慎就成为别人的肉鸡。 一,入侵小说网 当一切入侵方法无效时,使用暴力破解,无限穷举,尝试100亿次,总能找到正确的密码。 100亿次显然太多了,因为人们常用的密码极有规律,将生日、QQ号、幸运数字、手机号等拆分重组…

    2019年3月13日 网络安全
    0737
  • 转载:聊一聊ssrf漏洞的挖掘思路与技巧

    这次,小编来转载一篇关于网络安全的文章干货:”聊一聊ssrf漏洞的挖掘思路与技巧“。 所以此文章的内容除了干货还是干货,如果你看完了还是不会挖ssrf,那可以来找本文作者 前言 什么是ssrf SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的…

    2019年6月12日 网络安全
    0759
  • 各位PhpStudy开发者的电脑是否已经成为了“肉鸡”?

    随着互联网的飞速发展,PC电脑端的软件越来越多,使用PC电脑端工作的人也越来越多了,几乎办公室不可能缺少PC电脑,家里现在也不可能缺少PC台式电脑。那么,大家是否有想过自己每天使用的PC电脑是否有后门?是否中了病毒了呢?是否有注意过网络安全呢? 最近有一则比较重要的网络安全新闻,小编也来转载一下,广而告之各位开发者,各位站长: ”各位PhpStudy开发者的…

    2019年9月26日 phpstudy
    0822
  • 匿名线上聊天室,一次性匿名在线聊天工具

    科技越来越发达了,但是科技进步的同时,大家有注意到私隐的问题嘛?美国多次曝光社交媒体公司频繁泄露用户的私隐,不仅如此,就连手机制造商也有泄露用户私隐的情况出现。那我们平时在互联网聊天的时候有什么需要注意的呢?如何保护我们的个人私隐不被泄露?如何从聊天软件入手去保护我们的私隐?这次小编来介绍一下比较安全的聊天工具吧。   相信大家会遇到这种情况:在某…

    2019年8月17日 网络安全
    03.1K
  • 关于如何修改wordpress后台登录入口

    这次,小编来给大家说说,关于如何修改wordpress后台登录入口。相信很多小伙伴也喜欢用wordpress来建站,简单便利而且优化效果好。虽然不是静态网站,其实伪静态网站排名也不差哦。 需要修改根目录里的wp-login.php和wp-includes文件夹下的general-template.php文件: 1. 首先在网站根目录下找到wp-login.p…

    2020年5月14日
    01.1K
  • 实际上,渗透测试是什么?渗透测试的流程有哪些?

    这次,小编来给大家说说,关于 “渗透测试是什么?渗透测试的流程有哪些?” 的这个话题。 一般来说,其实呢,渗透测试是一种测试web应用程序、网络或计算机系统的方法,用于识别可能被利用的安全漏洞。主要目标是防止未经授权的访问、更改或利用系统。 渗透测试旨在针对已知的漏洞或跨应用程序发生的常见模式,不仅发现软件缺陷,还发现网络配置中的弱点。 为什么安全渗透测试很…

    2020年9月3日
    0511
  • 转载:实战黑客入侵网站教程轻松拿下1000个网站

    我们生活在互联网时代,重视个人信息及网站数据安全尤为重要,但又有多少互联网从业者真正做到了保护数据及隐私的安全呢。开通网站安全版块为站长们分享网站安全与黑客入侵网站的相关案例,目的提醒站长们注重自己的网站帐号数据和资料安全,尽可能的把网站被黑的风险降到最低。 一,胜率 初恋结婚的概率为1%,所谓天长地久,不过是一厢情愿。 初次创业的成功率在5%左右,所谓雄心…

    2019年3月13日 网络安全
    11.2K
  • D盾Web查杀Webshell查杀下载

    D盾_Web查杀 软件使用自行研发不分扩展名的代码分析引擎,能分析更为隐藏的WebShell后门行为。引擎特别针对,一句话后门,变量函数后门,${}执行 ,`执行,preg_replace执行,call_user_func,file_put_contents,fputs 等特殊函数的参数进行针对性的识别,能查杀更为隐藏的后门,并把可疑的参数信息展现在你面前,…

    2019年3月13日
    01.0K
  • WordPress博客网站被黑了应该如何解决?

    WordPress博客网站,一直以来都是安全性高、拓展性强而受到广大用户的欢迎,平时也极少听到有关于Wordpress网站被黑的事情。那么,Wordpress真的不会被黑吗?事实并非如此,网站的安全除了系统以外最重要的因素就是站长,Wordpress系统肯定是没问题,一直都有专业的技术人员在维护,更新频率还是挺频繁的,因此,Wordpress网站是否安全完全…

    2019年9月22日
    0764