文件包含和文件读取漏洞代码审计
1,Metinfo文件包含漏洞分析
漏洞代码出现在/message/index.php文件中,代码如下:
1 2 3 4 5 6 7 | if (! $metid ) $metid = 'index' ; if ( $metid != 'index' ){ require_once $metid . '.php' } else { /*省略*/ } |
这一段代码很简单,使用require_once函数包含了传进去的参数$metid.php文件,我们可以包含本地文件,使用截断来进行利用。
如果是想要进行远程文件包含的话,需要服务器端的allow_url_include=on,也就是允许远程文件包含才可以,然后我们可以直接远程包含一句话木马拿shell
2,文件读取(下载)漏洞(phpcmsv9)
漏洞位于文件/phpcms/modules/search/index.php public_的public_get_suggest_keyword()函数
1 2 3 4 5 6 7 8 | public function public_get_suggest_keyword(){ $url = $_GET [ 'url' ]. '&q=' . $_GET [ 'q' ]; $res =@ file_get_contents ( $url ); if (CHARSET != 'gbk' ){ $res =iconv( 'gbk' ,CHARSET, $res ); } echo $res ; } |
可以看到在该函数从GET方法里面获取要读取的URL和文件,使用file_get_contents函数来读取内容,当然我们要读取任意目录的文件的话,需要使用../来实现跳级
比如?url=&q=../../1.php,这样我们就可以利用跳级读取任意我们知道文件名的文件
最终利用这个漏洞读取数据库配置文件的EXP是:
1 | /index.php?m=search&c=index&a=public_get_suggest_keyword&url=&q=../../phpsso_server/caches/configs/database.php |
感觉这两个漏洞看上去不是很难,但是在当时安全意识比较落后的时候,应该很少有人能意识到这样编写代码所造成的危害。
__EOF__

本文作者:春告鳥
本文链接:https://www.cnblogs.com/Cl0ud/p/12421204.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/Cl0ud/p/12421204.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!