返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >代码审计:任意文件包含(php4.81版本)
  • 758
分享到

代码审计:任意文件包含(php4.81版本)

php服务器web安全 2023-09-06 21:09:11 758人浏览 薄情痞子
摘要

代码审计方式: 通读全文 关键字定位 本次采用的是关键字定位,使用工具为seay源代码审计系统。 流程及分析: 添加审计源码项目并定位关键字(使用全局搜索定位)          定位原则:有变量参数传入   分析此处源码      

代码审计方式:

通读全文

关键字定位

本次采用的是关键字定位,使用工具为seay源代码审计系统。

流程及分析:

  1. 添加审计源码项目并定位关键字(使用全局搜索定位)

        

定位原则:有变量参数传入

 

  1. 分析此处源码

 

        逐条分析流程

        1.! empty($_REQUEST['target']==》true

        empty($_REQUEST['target']==》false

        target你传参值非空

        2.is_string($_REQUEST['target'])==》true

        target传参值是字符串

        3.! preg_match('/^index/', $_REQUEST['target'])==》true

        preg_match('/^index/', $_REQUEST['target'])==》false

        target传参值不能以index字符开始

        4.! in_array($_REQUEST['target'], $target_blacklist)==》true

        in_array($_REQUEST['target'], $target_blacklist)==》false

        在黑名单匹配不到target的传参值

        此处追溯新参数$target_blacklist)黑名单文件为import.PHP/export.php

 

        5.&& Core::checkPageValidity($_REQUEST['target'])

此处传参给到引入类函数继续追踪检索

 

基于前提条件,只需要审核结果为真的判定表达即可让之前的初始逻辑关系成立

if (in_array($page, $whitelist))

传参可以匹配到定义的白名单

 

mb_substr()函数切割中文作用

mb_strpos()函数匹配截取的长度

此条切割英文字符传参截取中文部分匹配白名单

 

urldecode作用url解码,后续的效果同上一条匹配白名单

根据以上分析利用url的二次加密可以修改到传参的文件路径以二次加加密编码的‘?’绕过后端waf,即存在此处任意文件包含漏洞

服务器后端创建txt文件写入phpinfo()

 

构造poc

http://localhost/phpMyAdmin/index.php?target=sql.php%253F../../../1.txt

 

来源地址:https://blog.csdn.net/qq_52986156/article/details/127394766

--结束END--

本文标题: 代码审计:任意文件包含(php4.81版本)

本文链接: https://lsjlt.com/news/397605.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作