zoukankan      html  css  js  c++  java
  • PHP安装文件的审计

     初始化安装

    一般php程序都有一个初始安装的问题,如果使用了一些cms安装后且没有删除安装文件的话,就会导致二次安装等问题. 具体但不限于以下几种情况:

    1. 无验证功能,任意重装覆盖
    2. $_GET['step']跳过限制步骤
    3. 变量覆盖导致从新安装
    4. 判断lock后跳转无exit
    5. 解析install.php.bak漏洞
    6. 其他特定功能绕过漏洞

    源码解析

    首先判断一下.lock文件是否存在,如果存在,则跳转到主页, 注意他这的跳转并没有使用代码的手段终止代码运行(exit,die)

    接下来是环境的一些展示

    接下来是数据库的配置和连接

    漏洞实现

    通过访问install.php文件. 发现跳转到了index.php文件(我已安装过).

    利用burp抓包来看,响应到了index.php

    通过burp的历史 找到请求的install.php  查看响应,发现由于代码没有终止操作,所以后续的所有代码都是响应了.

    我把他的跳转代码给注释,然后重新抓包, 得到post数据包,发送到burp重放栏

    修改参数dbname == expa; -- - "; phpinfo();

    然后打开注释的代码. 发送出去我们修改后的包.

    然后我们访问config.php 发现已经显示了phpinfo()页面信息;

    修复

    问题的根源就在于已经安装过的时候 ,并没有结束代码的执行. 所以我们在判断安装跳转之后需要加上代码终止运行.

    另外最好就是安装完删除与之对应文件.

  • 相关阅读:
    Git 三种状态
    Git如何合并其它分支
    Git开发测试流程
    curl工具简介
    asp.net Forums 之HttpHandler和HttpModule
    WebRTC入门
    mac安装Homebrew
    iOS加载动态自定义字体
    My Frist in this frist!!
    javascript中直接取得DWR方法的返回值
  • 原文地址:https://www.cnblogs.com/php09/p/10517118.html
Copyright © 2011-2022 走看看