zoukankan      html  css  js  c++  java
  • PHP代码审计理解(一)----Metinfo5.0变量覆盖

    0x01 漏洞简介

      这个漏洞是metinfo5.0变量覆盖漏洞,并且需要结合文件包含。我使用的cms版本是5.3,事实上已经修复了这个漏洞(5.0的cms源码已经找不到了哈),但是我们可以借他来学习理解变量覆盖的原理。并且知道他修复的方式。

    这里捋一下漏洞的流程:

    about----index.php----->包含文件【../include/module.php】----包含文件【common.inc.php】(这里有一个判断,我们可以输出验证一下),然后在common.inc.php中发现一段代码,可能存在变量覆盖,漏洞的切入点也在这里。

     

     

    0x02 漏洞原理

    正常逻辑下:

      module的值输出为show.php,关注module的愿意当然是因为这里有一个文件包含操作,如果被包含的文件可控,我们是不是可以使其包含一些危险文件,如小马,探针等等。

    漏洞利用时:

      在这段代码后输出调试看看,可以看到这里可以传入任意参数。在进入判断函数前,$module=113。

     

    我们回到module.php文件,到下图这段代码,5.3这个版本其实已经修复了,就靠这个$module=' '的操作,将我们之前传入的值清空了,使得漏洞修复。而5.0版本中,是没有这一操作的。我这里先将他注释,假装自己是5.0漏洞版本。

    然后我们按照漏洞逻辑,使fmodule=7&module=filename ,我这里先在本地目录创建了一个1.txt,内容是phpinfo。可以看到,此时就利用成功啦!

    0x03 漏洞修复 

    从第二点我们可以知道,在调用$module前,将我们输入的值置空,重新按照函数赋值,就可以避免被利用成功。

  • 相关阅读:
    web前端node.js常用命令
    常见的一部份面试题
    JavaScript基础语法
    表单属性、标签
    文字美化学习总结
    JS-实现横向手风琴
    Js-带进度条的轮播图
    canvas-八卦图和时钟实现
    JS-闭包练习
    JS-上下文练习
  • 原文地址:https://www.cnblogs.com/foe0/p/12018188.html
Copyright © 2011-2022 走看看