当前位置:首页 > 未分类 > 正文内容

带你挖掘文件包含漏洞之代码审计 #4 实战五个案例

admin9年前 (2017-05-26)未分类820

在 PHP 安全中,文件包含漏洞是危害严重的漏洞!本文不再讲解基础概念,直接进入实战环节。

一、文件包含漏洞挖掘要点

  1. 核心关键字:require()、require_once()、include()、include_once()(注意:函数名中括号与参数间存在空格,效果相同);

  1. 本次实战对象:CMS 系统 ECShop_V2.7.3_GBK_release1106(测试中发现 4 个文件包含漏洞,后续补充第 5 个案例)。

二、实战案例解析

案例一:通过include_once定位的文件包含漏洞

  1. 漏洞定位

以include_once为关键字在 CMS 源码中搜索,发现大量相关调用,其中一处可疑代码位置如下:

进一步定位到具体漏洞文件地址:

  1. 代码分析

双击打开漏洞文件,查看核心代码逻辑:

关键代码:$directory = ROOT_PATH . 'includes/modules/shipping';,结合上下文判断,变量$file可控,无有效过滤。

  1. 漏洞利用

    • 进入includes/modules/shipping目录,新建test.php文件,写入phpinfo()代码:

    • 构造 URL 访问,成功执行phpinfo():

案例二:可控变量$shipping导致的文件包含漏洞

  1. 漏洞定位

搜索发现另一处可疑代码,涉及include_once调用:

打开文件查看详细代码:

  1. 代码分析

变量$shipping通过 POST 请求赋值,且无过滤直接传入包含函数:

include_once(ROOT_PATH . 'includes/modules/shipping/' . $shipping . '.php');,确认$shipping可控。

  1. 漏洞利用

    • 进入includes/modules/shipping目录,确认已存在test.php(含phpinfo()):

    • 构造 POST 请求访问,成功执行代码:

案例三:可控变量$payment导致的文件包含漏洞

  1. 漏洞定位

发现类似案例二的代码逻辑,变量$payment可疑:

  1. 代码分析

$payment通过 POST 请求传入,无过滤直接用于包含:

include_once(ROOT_PATH.'includes/modules/payment/'.$payment.'.php');,确认$payment可控。

  1. 漏洞利用

    • 进入includes/modules/payment目录,新建2.php(含phpinfo());

    • 构造 POST 请求访问,成功执行代码:

案例四:$_REQUEST['code']未过滤导致的文件包含漏洞

  1. 漏洞定位

发现直接使用$_REQUEST['code']的包含代码,无任何过滤:

  1. 代码分析

核心代码:include_once(ROOT_PATH.'includes/modules/payment/'.$_REQUEST['code'].'.php');,code参数完全可控。

  1. 漏洞利用

    • 进入includes/modules/payment目录,新建测试文件;

    • 构造 URL 传入code参数,成功执行代码:

案例五:快速定位的第五个文件包含漏洞

  1. 漏洞定位

延续前序思路,快速发现另一处可控变量的包含代码:

  1. 代码分析

变量无过滤,直接用于文件包含,原理与前四个案例一致。

  1. 漏洞利用

    • 确认包含目录,新建测试文件:

    • 构造 URL 访问,成功触发漏洞:

三、实战总结

文件包含漏洞挖掘核心技巧:定位包含函数→判断变量是否可控→无过滤则可利用。本次在 ECShop 系统中快速发现 5 个漏洞,可见此类漏洞在老旧 CMS 中较为常见,需重点关注用户可控变量的过滤情况。

(注:实战中需遵守法律规定,仅对授权系统进行测试,禁止未授权渗透!)


扫描二维码推送至手机访问。

版权声明:本文由克拉玛依十三年年社团发布,如需转载请注明出处。

本文链接:https://www.klmyssn.com/?id=41

分享给朋友:

“带你挖掘文件包含漏洞之代码审计 #4 实战五个案例” 的相关文章

(转载) 告诉你被盗的 iPhone 是如何一步步被黑客解锁的 [解锁 iPhone]

(转载) 告诉你被盗的 iPhone 是如何一步步被黑客解锁的 [解锁 iPhone]

写在前面的话iPhone 到底安不安全?这个梗已经讨论了很久了。而我今天要告诉大家的是,就算你的 iPhone 6s 设置了六位数字密码,并且还有 touch ID 的保护,黑客同样能够解锁你的手机。故事背景就在三天之前,有一名用户告诉我们他的 iPhone 6s 被偷了。就在他的手机被盗之后不久,...

(原创)NOIP [全国青少年信息学奥林匹克联赛] 初赛之后的杂谈

(原创)NOIP [全国青少年信息学奥林匹克联赛] 初赛之后的杂谈

没人能比我更懂你。这次的 noip 初赛考的很砸,比数学还砸。深夜的情感就像熬过冬日的野草。我们都在寻找,寻找着一个能够和自己差不多的人,去对他倾诉自己的情感,去倾听他的情感。在一次一次的失败,一次又一次的成功后,留下的只是回忆;在一次次的交流中,一次次的倾听中,留下的是感情。就像我们总是在学习,却...

(原创)求人不如求己 -- 剪辑音乐就是这么简单 [如何剪辑音乐]

(原创)求人不如求己 -- 剪辑音乐就是这么简单 [如何剪辑音乐]

每每到了学校有活动,需要播放歌曲时,QQ 就多几个好友,消息又 99+,不消问什么事情,就知道是找我剪辑歌曲的同学了。怎么说,我这人对别人提出的需求,都尽力去帮助的,在剪辑音乐这事情上,从没拒绝过,但年复一年,每次剪辑音乐其实很简单,但是量多,就比较影响自己时间了,我又不会拒绝别人,很是尴尬,所以在...

(原创) 校园卡破解系列之数据修改 [pm3 破解饭卡][pm3 修改数据][校园卡修改][IC 卡修改数据]

(原创) 校园卡破解系列之数据修改 [pm3 破解饭卡][pm3 修改数据][校园卡修改][IC 卡修改数据]

(二)吃不完的饭卡提升完 IC 卡权限,就该考虑能不能修改饭卡金额了。通过两次消费前后饭卡数据的对比分析,发现虽然卡片数据包含较多扇区和区块,但消费前后变化的地方仅涉及两个扇区,这为后续分析提供了便利。通过十六进制与十进制转换,可进一步拆解变化的数据:消费后金额:373.2(数字:37320;16...

(原创)Web 渗透实例之中国教育部青少年普法网站逻辑漏洞【网站逻辑漏洞】【网站逻辑漏洞挖掘】【网站逻辑漏洞实例】

(原创)Web 渗透实例之中国教育部青少年普法网站逻辑漏洞【网站逻辑漏洞】【网站逻辑漏洞挖掘】【网站逻辑漏洞实例】

重要声明:此漏洞于 2016 年 12 月 2 号由社团成员挖掘出来,已经第一时间提交到补天,现已修复,发出来仅供学习与讨论,请勿用于非法途径!!!一、漏洞基本信息漏洞关联网站:中国教育部青少年普法网站用户登录界面地址:https://user.qspfw.com具体漏洞页面:用户密码找回界面,地址...

(原创)市教育局 web 渗透 — 市 OA 系统 [web 渗透实例][教育局网络安全][内网安全][内网渗透][oa 系统漏洞]

(原创)市教育局 web 渗透 — 市 OA 系统 [web 渗透实例][教育局网络安全][内网安全][内网渗透][oa 系统漏洞]

一、渗透前置说明(授权与免责)1. 授权声明本次渗透是在取得教育局网络第三方厂商(即时讯立维公司)授权许可之后进行的渗透测试。漏洞报告已第一时间交给教育局及第三方厂商,并协助厂商完成修补,至文章发布时,文中漏洞已修复。本文仅选取漏洞报告部分内容公开,完整漏洞报告模板存放于社团群内部。2. 免责申明请...