zoukankan      html  css  js  c++  java
  • DBShop前台RCE

    前言

     处理重装系统的Controller在判断是否有锁文件后用的是重定向而不是exit,这样后面的逻辑代码还是会执行,导致了数据库重装漏洞和RCE。

    正文

     InstallController.php中除了indexAction大多数的Action都是使用checkInstallStep()来判断系统是否已经安装,但是该方法中判断完后并没有exit,而是return+重定向,这样返回之前的Action后还是会执行接下来的代码。

     

    再看下checkMysqlConnectAction,该方法一是用于检测数据库是否连接成功,同时还用请求中的参数更新数据库配置文件

    当数据库能成功连接时,会将配置参数写入/data/Database.ini.php

     

    其中这五个地方是受我们控制的,但是由于程序对username和password做了校验,不让有单引号,由于在写入配置之前会先进行连接测试,所以port和localhost也不能随意修改,于是只能利用dbname了。

    先在数据库中创建如下数据库

    构造请求

    返回true后再看/data/Database.ini.php

     

    访问首页

    当然也可以直接绑定远程的恶意mysql服务器,然后结合MySQL LOAD DATA LOCAL INFILE来读取任意客户端文件

  • 相关阅读:
    Tensor总结
    Tensorflow池化
    conda操作
    KS值计算
    supervisor实践
    npm/yarn实践
    nni 环境搭建
    阿里云个人邮箱配置
    Jinja2宏使用
    利用VS code 远程调试 docker 中的 dotnet 应用
  • 原文地址:https://www.cnblogs.com/jinqi520/p/11274729.html
Copyright © 2011-2022 走看看