[关闭]
@1kbfree 2018-03-21T16:48:28.000000Z 字数 966 阅读 1188

文件包含漏洞

渗透


什么是文件包含漏洞

服务器通过php的特性(函数)去包含任意文件时,由于要包含的这个文件来源过滤不严,从而可以去包含一个恶意文件,而我们可以构造这个恶意文件来达到邪恶的目的。

为什么存在文件包含漏洞

一般来说,程序员开发人员通常会把可重复使用的函数写到单个文件中,在使用某些函数是,直接调用此文件,而无须再次编写,这种调用文件的过程一般称为包含。

很多人会问,为什么呢,因为开发人员都喜欢重复的代码可以不用重复写,直接调用某个函数或某个文件里面的代码,这就大大缩短了开发人员的开发时间了,但就是因为这种"缩短",导致了文件包含漏洞的产生。

我个人感觉这不算漏洞吧...... 只能说是语言设置的问题了。

简单小实例(随便演示的,下面还有讲)

我们这里有2个文件:

然后我们访问1.php并且给他传参:
image_1c9265ftdq2s6jb1e5g10n31i663b.png-12.6kB
然后我们使用菜单链接这个URL:
image_1c925qrgmo4b10qd1mgi2i917as1n.png-6.8kB
链接成功:
image_1c925rk7c1pmk18h31gno2cpar224.png-50.9kB

看到这里有很多人会问为什么了对吧。现在我来讲解一下,首先在1.php的文件中我们写了这一段代码$in = include($_GET['file_name']);这段代码的意思是:将包含(包含就是将某个文件的代码"写到"这个网站上面)GET请求过来file_name的值。而2.txt的内容就是一段PHP代码,为什么要写PHP代码呢,因为之前说了,这是因为1.php的include()将2.txt的内容写到了1.php所以说,在2.txt的内容,都会在1.php里被解释为php代码来执行,而这里是写的一句话木马,那么有理可知了,就可以拿起我们的菜刀来连接了

只要文件内容符合PHP语法规范,任何扩展名的文件都可以被PHP解析。

PHP文件包含

有很多人会以为只有PHP才有文件包含漏洞,其实不是的,还有像ASP,JSP都有,只是因为PHP的包含函数功能强大,所以比较常见。

PHP中提供了4个文件包含函数,分别是:

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注