日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql malloc lib_CVE-2016-6662-MySQL ‘malloc_lib’变量重写命令执行分析 | CN-SEC 中文网...

發布時間:2024/9/27 数据库 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql malloc lib_CVE-2016-6662-MySQL ‘malloc_lib’变量重写命令执行分析 | CN-SEC 中文网... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

摘要

今天有個關于MySQL的漏洞被披露出來,編號CVE-2016-6662。該漏洞主要涉及到 mysqld_safe 腳本中在加速/處理內存時會采用 “malloc_lib”變量作為辨別標記選擇性加載(preload方式)比如tcmalloc之類的malloc庫。不幸的的是這個變量可以被my.cnf所控制,導致my.cnf一旦被攻擊者在mysql客戶端篡改的話可以直接導致mysqld_safe所調用的mysqld進程執行權被控制。

前言

今天有個關于MySQL的漏洞被披露出來,編號CVE-2016-6662。該漏洞主要涉及到 mysqld_safe 腳本中在加速/處理內存時會采用 “malloc_lib”變量作為辨別標記選擇性加載(preload方式)比如tcmalloc之類的malloc庫。不幸的的是這個變量可以被my.cnf所控制,導致my.cnf一旦被攻擊者在mysql客戶端篡改的話可以直接導致mysqld_safe所調用的mysqld進程執行權被控制。

技術分析

具體的攻擊思路前言部分基本已經表述出來,這里不再重述。筆者來看看漏洞作者在【1】中做了3種攻擊方式。作者的思路基本是圍繞著如何用這幾種技巧寫入 my.cnf 被mysqld_safe調用執行這個中心攻防點來進行。

我們先看看最簡單的第1種方法

1)采用 set global general_log 來繞過已存在文件(即my.cnf)

a)設置 my.cnf 為 mysql 用戶所在權限的基礎上

# ll /etc/my.cnf

-rw-r--r-- 1 mysql mysql 380 Sep 12 23:18 /etc/my.cnf

注:默認權限是root,但是不排除mysql集群使用時每個my.cnf是mysql組可讀寫;

b)開始攻擊,各位直接看圖吧

注: 這里使用root登錄,普通用戶默認是沒更改全局變量general_log_file 的權限

1

2

mysql>??set?global?general_log_file?=?'/etc/my.cnf';

ERROR?1227?(42000):?Access?denied;?you?need?the?SUPER?privilege?for?this?operation

攻擊成功后的my.cnf

2)使用隱藏的/var/lib/mysql/.my.cnf 和 /var/lib/mysql/my.cnf

這部分講起來其實意義不大,就是歷史原因造成這部分mysql數據目錄下的my.cnf和.my.cnf。最糟糕的是這部分還是mysql用戶組可以讀寫的目錄。所以我們又能控制到my.cnf了。

寫入的方法有兩種,一種還是方法一的變量,另一個是常見 INTO OUTFILE 文件注入技巧。

3)作者考慮下了上面2種方式都是需要

作者在假設攻擊者還有文件權限的情況下使用寫入觸發器文件的方式來“

CREATE?DEFINER=`root`@`localhost`?TRIGGER?appendToConf

AFTER?INSERT

ON?`active_table`?FOR?EACH?ROW

BEGIN

DECLARE?void?varchar(550);

set?global?general_log_file='/var/lib/mysql/my.cnf';

set?global?general_log?=?on;

select?"

[mysqld]

malloc_lib='/var/lib/mysql/

"?INTO?void;

set?global?general_log?=?off;

END;

接下來就等這個這個觸發器在表被flushed的時候被觸發了(說真的,筆者沒實踐這個步驟),比如:

1

INSERT?INTO?`active_table`?VALUES('xyz');

這樣我們就可以

最后,關于PoC或相關的信息您可以直接訪問【1】獲得。作者其實在后面的so也提供一個很好的回寫技巧,由于preload可以優先mysqld進程加載my.cnf,所以它就能修復my.cnf里的內容。J

最后

這個漏洞的危害建立在一個你至少需要普通用戶的基礎上,危害程度得因人而異,不注意安全的可能使用的mysql是一大堆弱口令的root用戶;注意安全的基本都是普通mysql用戶;集群上啟動MySQL進程的用戶也是個需要考慮的;至于web注入點使用這個功能個人覺得可能就比較窄了。

MySQL的修復【2】選擇的是對malloc_lib的路徑進行限制 /usr/lib, /usr/lib64, /usr/lib/i386-linux-gnu, or /usr/lib/x86_64-linux-gnu;

最后,筆者認為My

參考

本文由 安全客 原創發布,如需轉載請注明來源及本文地址。

本文地址:http://bobao.360.cn/learning/detail/3026.html

總結

以上是生活随笔為你收集整理的mysql malloc lib_CVE-2016-6662-MySQL ‘malloc_lib’变量重写命令执行分析 | CN-SEC 中文网...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。