代码审计方式: 通读全文 关键字定位 本次采用的是关键字定位,使用工具为seay源代码审计系统。 流程及分析: 添加审计源码项目并定位关键字(使用全局搜索定位) 定位原则:有变量参数传入 分析此处源码
代码审计方式:
通读全文
关键字定位
本次采用的是关键字定位,使用工具为seay源代码审计系统。
流程及分析:
定位原则:有变量参数传入
逐条分析流程
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
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0