• 【漏洞复现】PHPmyadmin 4.8.1后台Getshell新姿势


    原文地址:https://mp.weixin.qq.com/s/HZcS2HdUtqz10jUEN57aog

    早上看到群里在讨论一个新姿势,phpmyadmin后台getshell,不同于以往需要知道网站的绝对路径,这个漏洞只要数据库和网站源码在同一个盘符下即可直接getshell。

    漏洞详情请看原文地址,这里只进行复现。

    打开自己的phpstudy,发现自己下载的是4.0.10.20版本的,先查看phpmyadmin目录下的index.php文件,发现代码如下:

    这里是基于白名单的机制,target参数只能存在$goto_whitelist数组中,具体内容如下:

    由这两处代码可以判断phpmyadmin 4.0.10.20版本的不存在该漏洞。

    我们继续下载phpmyadmin 4.8.1版本的进行测试。index.php代码如下:

    由上图红框处可知这里是基于黑名单机制进行判断,只要target参数的值不是"import.php"和"export.php"即可进行下一步判断。

    checkPageValidity函数的代码如下:

    需要注意的是,$_GET、$_POST、$_REQUEST等获得的参数都是默认进行一次url解码的,但是这里对传入的参数又进行了一次url解码。

    因此我们可以将【?】进行两次url编码,构造如下url:

    http://localhost/phpMyAdmin/index.php?kk=phpinfo();&target=db_sql.php%253F/../../../MySQL/data/test/hack.frm

    checkPageValidity函数对传入的target参数进行判断,target参数的值开始到【?】的文件需要在白名单whitelist内。

    判断成立后在index.php文件中便直接使用inclde函数进行文件包含,由此我们利用两次url编码的方法便绕过了检测。

    这里可以利用包含MySQL自带的配置文件my.ini来判断当前路径。

    找出MySQL文件的路径后,即可利用创建表的方式写入webshell,再利用这个漏洞进行包含,即可getshell。

    创建表之后查看数据库文件,成功写入。

    利用该漏洞包含给文件,成功getshell。

    注意☆☆☆:这里写入的一句话需要用GET方式,POST方式尝试过无法成功,至于如何getshell(大马),可以参考我的上一篇文章。

    https://www.cnblogs.com/fox-yu/p/9134848.html
    笨鸟先飞早入林,笨人勤学早成材。
    
    转载请注明出处:
    撰写人:fox-yu  http://www.cnblogs.com/fox-yu/
  • 相关阅读:
    Angularjs演示Service功能
    初始化应用程序数据ng-init指令
    AngularJs的ng-include的使用与实现
    把视图转换为字符串
    学习angularjs的内置API函数
    AngularJs自定义过滤器filter
    ASP.NET MVC的切片(Section)脚本(script)
    在ASP.NET MVC部署AngularJs
    MS SQL的某一数据库成了Single User模式
    AngularJs的MVC模式
  • 原文地址:https://www.cnblogs.com/fox-yu/p/9209203.html
Copyright © 2020-2023  润新知