宿迁腾云网络网站建设公司

腾云网络 八年经验专注网站建设
  • 首页
  • 服务项目
    • 网站建设
    • 微信小程序
    • APP开发
    • SEO优化
  • 建站费用
  • 成功案例
    • 网站建设案例
    • 小程序案例
    • APP开发案例
    • SEO优化案例
  • 行业动态
    • 网站建设
    • SEO优化
    • 技术日志
  • 联系我们
    • 关于我们
首页 > 行业动态 > 技术日志 > PHP文件包含漏洞的形成、利用技巧及防范进行了

PHP文件包含漏洞的形成、利用技巧及防范进行了

2021-10-18

摘要:本文对PHP文件包含漏洞的形成、利用技巧及防范进行了详细分析,并通过一个真实案例演示了如何利用PHP文件包含漏洞对目标网站进行渗透测试,最终成功获取到网站的WebShell。

本文详细分析了含有漏洞的PHP文件的形成、利用技术和防范,并通过一个真实案例演示了如何利用含有漏洞的PHP文件对目标网站进行渗透测试,最终成功获取该网站。

PHP是一种非常流行的Web开发语言,网上很多Web应用都是用PHP开发的。在使用PHP开发的Web应用中,包含漏洞的PHP文件是一个常见的漏洞,利用PHP文件包含漏洞入侵网站也是一种主流的攻击方式。

PHP文件包含漏洞介绍

首先介绍一下什么是包含漏洞的文件。严格来说,文件包含漏洞是一种“代码注入”。其原理是注入用户可以控制的脚本或代码,让服务器执行。“代码注入”的典型代表是文件包含。文件包含漏洞可能出现在JSP、PHP、ASP等语言中,原理是一样的。本文仅介绍PHP文件包含漏洞。

为了成功利用文件包含漏洞进行攻击,需要满足以下两个条件:

1.Web应用采用include()等文件包含函数通过动态变量的方式引入需要包含的文件
2.用户能够控制该动态变量

在 PHP 中,有四个用于包含文件的函数。当这些函数用于包含文件时,将执行文件中包含的 PHP 代码。它们之间的区别解释如下:

():当使用该函数包含一个文件时,只有在执行到()函数的代码时才会包含该文件。当发生错误时,只会给出警告,并继续执行。

():功能与()相同,不同之处在于重复调用同一个文件时,程序只调用一次。

():1.()和()的区别在于,如果()的执行发生错误,函数会输出错误信息并终止脚本。2. 当使用()函数包含一个文件时,程序一执行就会立即调用该文件,只有在程序执行到该函数时才会调用()。

():它的功能和()一样,不同的是在重复调用同一个文件时,程序只调用一次。

现在看一个包含代码的简单文件,如下面的图 1 所示。

图1

从上面的代码可以看出,得到变量$的值后,直接带入()函数中,不做任何处理。存在一个包含漏洞的文件,我们可以利用这个漏洞查看系统中的任何文件。

让我们实际测试一下。首先将PHP页面上传到Web服务器,让它包含一个普通的txt文件。操作结果如下图2所示。

图2

然后我们把php代码插入到txt文本中,看看结果?插入如下图 3 所示的代码。

图 3

再次访问,结果如下图4所示。

图 4

从上图可以看出,文中的PHP代码执行成功。

利用该漏洞,我们可以查看系统中的任意文件,例如常用的“/etc/”文件,如图5所示。

图 5

PHP文件包含漏洞分为本地文件包含漏洞(LFI)和远程文件包含漏洞(RFI)。可以打开和包含本地文件的漏洞称为本地文件包含漏洞。使用本地文件包含漏洞,可以查看系统中任意文件的内容,也可以在有条件的情况下执行命令。这在下面的漏洞利用技术部分中有详细描述。

如果php.ini 的配置选项为ON,则文件包含功能可以加载远程文件。这种漏洞称为远程文件包含漏洞。使用远程文件包含漏洞,可以直接执行任意命令。在实际渗透攻击过程中,攻击者可以在自己的Web服务器上放置一个可执行的恶意文件,通过目标网站中包含漏洞的远程文件加载该文件php代码执行漏洞,从而达到执行任意命令的目的。

文件包含漏洞利用技术

远程文件包含漏洞之所以能够执行命令,是因为攻击者可以自定义包含文件的内容。因此,如果本地文件包含漏洞,如果要执行命令,还需要找到攻击者可以控制内容的本地文件。

目前常用的技术有以下几种:

包含用户上传的文件。这很容易理解,也是最简单的方法。如果用户上传的文件内容包含PHP代码,这些代码会在被文件函数加载后执行。但是,攻击的成功取决于上传功能的设计。例如,您需要知道上传文件存储的物理路径,还需要对上传文件具有执行权限。

包含伪协议,例如 data:// 或 php://。这需要目标服务器支持,并且需要设置为ON。PHP5.2.0之后的版本,支持data:伪协议,方便代码执行。

包含文件。这部分要求攻击者能够控制某些文件的内容。PHP默认生成的文件一般存放在/tmp目录下。

包含日志文件。例如,Web 服务器的访问日志文件是一种常用技术。因为几乎所有的网站都会记录用户的访问访问日志。因此,攻击者可以通过文件包含漏洞将PHP代码插入到Web日志中,并执行Web日志中包含的PHP代码。在以下案例中,该技术用于成功获取目标网站。但需要注意的是,如果网站访问量很大,日志文件可能会非常大。这时候如果包含这么大的文件,PHP进程可能会卡住。一般的网站通常每天都会生成一个新的日志文件,所以在凌晨攻击成功相对容易。

包含 /proc/self/ 文件。这也是一种通用技术,因为它不需要猜测包含文件的路径,用户也可以控制其内容。常见的方法是将PHP代码注入User-来完成攻击。

使用PHP文件渗透存在漏洞的网站案例

上面我们详细介绍了PHP文件包含漏洞的形成和测试。下面我们通过一个真实案例来说明如何利用PHP文件包含漏洞来渗透目标网站。

目标网站:中国电信业务系统

目的:获取目标网站的信息

详细的渗透过程如下:

1. 发现漏洞

我们先打开一个目标网站的网址看一下,如下图:

URL:http://XXX.vnet.mobi/index.php?path=jcb/zt/gfsdtjqg/index.html

注意path=后面的内容。通过这个URL,可以发现.php调用了文件函数,将网站目录下的文件包含进来,显示给用户。但目前我们不确定这个 URL 是否存在文件包含漏洞。让我们手动测试是否存在文件包含漏洞。因为网站有一个.php的测试页面,通过这个页面我们可以得到很多关于目标网站的有用信息。不用fuzz就可以得到web目录的绝对路径,所以这里可以直接构造已知文件的路径,让它包含php代码执行漏洞,快速确认是否存在文件包含漏洞。

我们通过包含已知文件“/etc/”文件来确认上述 URL 文件是否包含漏洞。

图 6

从上面返回的结果可以确定该网站存在包含漏洞的文件。下面我们来演示一下如何利用这个漏洞进行渗透测试。

2. 漏洞利用

通过以上测试,我们可以确定该网站存在文件包含漏洞。那么问题来了,如何利用这个漏洞来达到我们的目的呢?一种思路是将后门代码插入到网站的web日志文件中,利用目标网站的文件包含漏洞来包含这个日志文件。这时候web日志中的后门代码会作为PHP代码执行,这样我们就可以得到一个执行后续攻击。但此时,我们面临着一个问题。我们需要知道Web日志的存储路径,否则无法达到目的。通常web日志存储路径由web服务器的配置文件指定。以上获取的信息可用于判断目标网站是否使用该服务器。所以,我们可以先通过包含web服务器配置文件(.conf)来获取web日志存储路径。操作如下图7所示。

图 7

3.获取

上面,我们通过Web服务器配置文件(.conf)获取到了Web访问日志(/opt//logs/.log)的存在路径,但是由于网站的日志文件很大,访问程序会卡在这个时候,所以我们选择在清晨再次进攻。因为一般的网站每天都会生成一个访问日志文件,所以早上的日志文件很小,很容易成功。下面的图 8 显示了如何将后门代码插入到 Web 访问日志中,如下所示。

图 8

最终,我们成功获取了目标网站,如图9所示。

图9

PHP 文件包含漏洞预防

这部分主要从代码层和Web服务器的安全配置两个方面来讲解PHP文件包含漏洞的防范。首先,从代码层面来说,在开发过程中要尽量避免动态变量,尤其是那些用户可以控制的。一个保险的方法是使用“白名单”的方式将允许被包含的文件列出,只允许白名单中的文件被包含,这样就可以避免任何文件被包含的风险。您可以参考下面图 10 所示的代码实现。.

图10

另一种方法是在黑名单中定义漏洞利用过程中包含一些特殊字符的文件,并对传入的参数进行过滤,但有时会因为过滤不完整而被有经验的攻击者绕过。

在web服务器安全配置方面,可以通过设置php.ini中的值来限制特定目录下允许包含的文件,可以有效避免利用文件包含漏洞的攻击。需要注意的是,值是目录的前缀,所以假设设置了以下值:=/var/www /test,那么下面的目录其实都在允许的范围内。

/var/www/test
/var/www/test123
/var/www/testabc

如果要限制指定目录,需要在末尾加上“/”,需要特别注意。

open_basedir=/var/www/test/

如果有多个目录,下面的目录用分号隔开,下面用冒号隔开。

总结

以上,我们通过文字和代码详细分析了含有漏洞的PHP文件的形成、利用技巧和防范,并结合一个真实案例讲解了如何利用含有漏洞的PHP文件对目标网站进行渗透测试,最终获得许可。通过这些内容,相信读者对PHP文件包含漏洞有了深入的了解。其实,只要了解漏洞的原理,对漏洞有深入的了解,加上安全意识,彻底解决包含漏洞的PHP文件并不难。

Tag: php web开发 漏洞
网站制作公众号

宿迁腾云网络网站建设公司 | 网站开发 | 网站制作 | 网站优化

咨询电话:13160355545

上一篇

返回栏目

下一篇

免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服处理。

热推

  • 网站本地测试需做3步1、配置好本地环境。
  • 本文实例讲述了PHP保存到服务器的方法(图)
  • 优惠券折扣设置流程是什么?有哪些网站和好用的APP可以推广?
  • PHP开发用到了编码与解码,将转为中文转这样
  • 节选自《Go语言之父谈Go:大道至简》(图)
  • 2019最火的11个酷炫编程工具
  • 2017年编程语言排行榜top20获奖名单:LOGO语言本月排在
  • 最小的php框架免费开源的超轻量级PHP框架,你了解吗?(上)
  • 2020年这9大顶级Java框架,你想知道吗?
  • php开发从入门到精通php语言程勋元的一种复印php培训机构php web开发入门到精通

相关

了解常见PHP应用程序安全威胁,掌握6个常见安全性攻击

了解常见PHP应用程序安全威胁,掌握6个常见安全性攻击

如何查看php版本?多种方法助你快速知晓

如何查看php版本?多种方法助你快速知晓

PHP格式化:提升代码质量与协作效率的关键规则

如何查看虚拟主机上的 PHP 版本?这篇文章告诉你

Linux 系统管理员和 web 开发者必知:如何查看 PH

Linux 系统管理员和 web 开发者必知:如何查看 PH

免费开源的轻量级 PHP 开发框架 ThinkPHP,遵循

从零开始开发完整网站:前端、后端与 Web 服务器的关键技术

php框架 Java 与 PHP 之争:为何懂技术的大佬选

BitDefender 发布超级工厂病毒专杀工具,可清除所有

asp语言与php语言的区别 前端和后端的区别,你真的了解吗

标签

seo(1182) 市场营销(661) 网站制作(573) 网站建设(564) 搜索引擎(553) 网站(482) PHP(361) 编程语言(345) 建站(294) 关键词排名优化(267) 网站建设公司(245) 优化(216) seo排名(207) 域名(190) 软件(171) 网站优化(148) 搜索引擎优化(146) 外链(141) 科技(136) 网站关键词(124) 网站排名优化(123) 域名服务器(120) 网站排名(107) 时政(103) 排名优化(95) 搜索引擎收录(93) 网站设计(92) 电子商务(88) 引擎(86) 移动互联网(85) 开发框架(79) 开发(75) 网站服务器(74) 框架(68) 前端开发(68) 网站分析(66) 网站建设方案(65) 关键(64) 流量(63) 源码(62) 百度优化(62) 网站权重(61) 开放源代码(59) seo培训(53) 网页设计(51) 百度(51) php框架(50) 网站建设知识(50) 大数据(50) 谷歌(49)
宿迁腾云网络网站建设公司
网站建设
  • 私人定制
  • 标准模板建站
  • 经济模板建站
精品模板

宿迁腾云网络网站建设公司

联系电话:13160355545

公司地址:江苏省宿迁市丽景湾华庭北门都市花园公寓9楼907

联系邮箱:admin@tyweb.net

全国分站
  • 北京
  • 广东
  • 东莞 广州 中山 深圳 惠州 江门 珠海 汕头 佛山 湛江 河源 肇庆 潮州 清远 韶关 揭阳 阳江 云浮 茂名 梅州 汕尾
  • 山东
  • 济南 青岛 临沂 济宁 菏泽 烟台 泰安 淄博 潍坊 日照 威海 滨州 东营 聊城 德州 莱芜 枣庄
  • 江苏
  • 苏州 徐州 盐城 无锡 南京 南通 连云港 常州 扬州 镇江 淮安 泰州 宿迁
  • 河南
  • 郑州 南阳 新乡 安阳 洛阳 信阳 平顶山 周口 商丘 开封 焦作 驻马店 濮阳 三门峡 漯河 许昌 鹤壁 济源
  • 上海
  • 河北
  • 石家庄 唐山 保定 邯郸 邢台 沧州 秦皇岛 张家口 衡水 廊坊 承德
  • 浙江
  • 温州 宁波 杭州 台州 嘉兴 金华 湖州 绍兴 舟山 丽水 衢州
  • 陕西
  • 西安 咸阳 宝鸡 汉中 渭南 安康 榆林 商洛 延安 铜川
  • 湖南
  • 长沙 邵阳 常德 衡阳 株洲 湘潭 永州 岳阳 怀化 郴州 娄底 益阳 张家界 湘西
  • 重庆
  • 福建
  • 漳州 泉州 厦门 福州 莆田 宁德 三明 南平 龙岩
  • 天津
  • 云南
  • 昆明 红河 大理 文山 德宏 曲靖 昭通 楚雄 保山 玉溪 丽江 临沧 思茅 西双版纳 怒江 迪庆
  • 四川
  • 成都 绵阳 广元 达州 南充 德阳 广安 阿坝 巴中 遂宁 内江 凉山 攀枝花 乐山 自贡 泸州 雅安 宜宾 资阳 眉山 甘孜
  • 广西
  • 贵港 玉林 北海 南宁 柳州 桂林 梧州 钦州 来宾 河池 百色 贺州 崇左 防城港
  • 安徽
  • 芜湖 合肥 六安 宿州 阜阳 安庆 马鞍山 蚌埠 淮北 淮南 宣城 黄山 铜陵 亳州 池州 巢湖 滁州
  • 海南
  • 三亚 海口 琼海 文昌 东方
  • 江西
  • 南昌 赣州 上饶 吉安 九江 新余 抚州 宜春 景德镇 萍乡 鹰潭
  • 湖北
  • 武汉 宜昌 襄樊 荆州 恩施 孝感 黄冈 十堰 咸宁 黄石 仙桃 随州 天门 荆门 潜江 鄂州 神农架
  • 山西
  • 太原 大同 运城 长治 晋城 忻州 临汾 吕梁 晋中 阳泉 朔州
  • 辽宁
  • 大连 沈阳 丹东 辽阳 葫芦岛 锦州 朝阳 营口 鞍山 抚顺 阜新 本溪 盘锦 铁岭
  • 黑龙江
  • 齐齐哈尔 哈尔滨 大庆 佳木斯 双鸭山 牡丹江 鸡西 黑河 绥化 鹤岗 伊春 大兴安岭 七台河
  • 内蒙古
  • 赤峰 包头 通辽 呼和浩特 乌海 鄂尔多斯 呼伦贝尔
  • 贵州
  • 贵阳 黔东 黔南 遵义 黔西 毕节 铜仁 安顺 六盘水
  • 甘肃
  • 兰州 天水 庆阳 武威 酒泉 张掖 陇南 白银 定西 平凉 嘉峪关 临夏 金昌 甘南
  • 青海
  • 西宁 海西 海东 海北 果洛 玉树 黄南
  • 新疆
  • 乌鲁木齐 伊犁 昌吉 石河子 哈密
  • 西藏
  • 拉萨 山南 林芝 日喀则
  • 吉林
  • 长春 白山 白城 延边 松原 辽源 通化 四平
  • 宁夏
  • 银川 吴忠 中卫 石嘴山 固原
SiteMap
网站地图
TAG标签
Copyright © 2017-2025 TYWEB.NET 宿迁腾云网络科技有限公司 ALL RIGHTS RESERVED.   苏ICP备17033535号-1

热门搜索

百度 下载 2025 2024 2026 货源 货货源 虚拟 禅道 报名 金蝶KIS旗舰版
  • 客服

    在线客服

  • 电话

    13160355545

  • 微信

精品模板
建站费用
成功案例
联系我们