【首发】phpmyadmin4.8.1后台getshell

渗透技巧 7年前 (2018) admin
689 0 0

官网下载的最新版,文件名是phpMyAdmin-4.8.1-all-languages.zip

 

问题就出现在了 /index.php

找到55~63

【首发】phpmyadmin4.8.1后台getshell

61行出现了 include $_REQUEST[‘target’];

很明显这是LFI的前兆,我们只要绕过55~59的限制就行

第57行限制 target 参数不能以index开头

第58行限制 target 参数不能出现在 $target_blacklist 内

找到 $target_blacklist 的定义:

【首发】phpmyadmin4.8.1后台getshell

就在 /index.php 的第50

只要 target 参数不是 import.php 或 export.php 就行,最后一个限制是Core::checkPageValidity($_REQUEST[‘target’])

找到Core类的checkPageValidity方法:

【首发】phpmyadmin4.8.1后台getshell

定义在了 librariesclassescore.php 的第443

问题出现在了第 465 行的 urldecode()

我们可以利用这个函数绕过白名单检测!

我把 ? 两次url编码为 %253f 即可绕过验证!

 

Payload:

  1. http://127.0.0.1/phpmyadmin/index.php?target=db_sql.php%253f/../../../../../../windows/wininit.ini

【首发】phpmyadmin4.8.1后台getshell

本以为漏洞到这就结束了,因为我没有找到phpmyadmin可以进行文件操作来实现Getshell的地方,过了好几周后突发灵感,想到了一个不用写文件也能拿Shell的方法。

我们都知道,登入phpmyadmin后,数据库就是完全可以控制的了,那我们是否可以把WebShell写入到数据库中然后包含数据库文件?

本地测试了一下,发现如果把WebShell当做数据表的字段值是可以完美的写入到数据库文件当中的:

【首发】phpmyadmin4.8.1后台getshell 【首发】phpmyadmin4.8.1后台getshell

找到对应的数据库文件:

【首发】phpmyadmin4.8.1后台getshell

包含之:

【首发】phpmyadmin4.8.1后台getshell

Payload:

  1. http://127.0.0.1/phpmyadmin/index.php?a=phpinfo();&target=db_sql.php%253f/../../../../../../phpStudy/PHPTutorial/MySQL/data/hack/hack.frm

【首发】phpmyadmin4.8.1后台getshell


( •̀ ω •́ )✧ChaMd5安全招聘

联想安全实验室

高级安全研究员

http://www.chamd5.org/jobdetail.aspx?id=500

安全技术专家

http://www.chamd5.org/jobdetail.aspx?id=499


好未来教育集团

高级安全渗透工程师

http://www.chamd5.org/jobdetail.aspx?id=497


360企业安全

360企业安全高级攻防部

http://www.chamd5.org/jobdetail.aspx?id=498


WiFi万能钥匙安全应急响应中心

安卓逆向研究员

http://www.chamd5.org/jobdetail.aspx?id=501

ios研究员

http://www.chamd5.org/jobdetail.aspx?id=502



【首发】phpmyadmin4.8.1后台getshell

原文始发于微信公众号(ChaMd5安全团队):【首发】phpmyadmin4.8.1后台getshell

版权声明:admin 发表于 2018年6月20日 下午5:11。
转载请注明:【首发】phpmyadmin4.8.1后台getshell | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...