• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • win2k平臺下mysql的默認設置的脆弱性

    發表于:2007-05-25來源:作者:點擊數: 標簽:
    寫在前面:無事可做,生命被消耗,痛~~~啊,所以就寫了,本文no原創,整理而成! 默認安裝的mysql服務不 安全 因素涉及的內容有: 一.mysql默認的授權表 二.缺乏日志能力 三.my.ini文件泄露口令 四.服務默認被綁定全部的 網絡 接口上 五.默認安裝路徑下的mysq

    寫在前面:無事可做,生命被消耗,痛~~~啊,所以就寫了,本文no原創,整理而成!
    默認安裝的mysql服務不安全因素涉及的內容有:
    一.mysql默認的授權表
    二.缺乏日志能力
    三.my.ini文件泄露口令
    四.服務默認被綁定全部的網絡接口上
    五.默認安裝路徑下的mysql目錄權限
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    一.mysql默認的授權表
    由于mysql對身份驗證是基于mysql這個數據庫的,也叫授權表。所有的權限設置都在這里了。
    我們只討論最為重要的一個表 user表。它控制的是接受或拒絕連接。
    先看一下
    select host,user,password,Delete_priv  from user;
    +-----------+------+------------------+-------------+
    | host      | user | password         | Delete_priv 
    |+-----------+------+------------------+-------------+
    | localhost | root | 67457e226a1a15bd | Y           

     %         | root |                  | Y           

     localhost |      |                  | Y           

     %         |      |                  | N           
    |+-----------+------+------------------+-------------+
    現在新的版本,安裝完畢都會出現一個快速設置窗口,用于設置口令。
    以上,就是user表里的內容(略了點)看看有什么問題?
    我們知道mysql的驗證方式是比較特殊的,它基于兩個2個信息來進行的
    1.從那里連接
    2.用戶名
    第一條沒什么問題,當然口令必須是安全的。
    第二條從任何主機,以用戶root,不需要口令都可以連接,權限為所有的權限。(注:這里的權限是全局權限)
    第三條從本地主機,任何用戶名(注:user為空白,不表示不需要用戶名),不需要口令,都可以連接,所有的權限
    第四條從任何主機,任何用戶名,不需要口令,都可以連接,無任何權限。
    可以看出,2\3\4都是不安全的,如何攻擊這里就不說了,請參看資料文庫。
    如果你mysql只允許本地連接,刪除host的%和user中的nul(表示空)
    delete from user where host=‘%‘;
    delete from host where user=‘‘;
    最后的user表,看起來因該是這個樣子
    +-----------+------+------------------+-------------+
    | host      | user | password         | Delete_priv 
    |+-----------+------+------------------+-------------+
    | localhost | root | 67457e226a1a15bd | Y           
    |+-----------+------+------------------+-------------+
    最后需要刷新授權表,使其立刻生效
    flush privileges;
    如果你的mysql需要被遠程使用,需要為%段中的root帳號,加上一個安全的密碼
    update user set password=password(‘youpass‘) where host=‘%‘;
    其中youpass,就是口令
    mysql> select host,user,password,Delete_priv from user;
    +-----------+------+------------------+-------------+
    | host      | user | password         | Delete_priv 
    |+-----------+------+------------------+-------------+
    | localhost | root | 67457e226a1a15bd | Y           

     %         | root | 77c590fa148bc9fb | Y           
    |+-----------+------+------------------+-------------+
    更好的做法是,對遠程主機的連接,指定為特定的
    修改host中的%為允許連接的主機,比如:
    192.168.0.% 允許一個特定的子網
    www.sandflee.net 允許一個特定的主機
    帳號默認的名字也是擔心的問題。有可能導致被暴力破解
    update user set user=‘localadmin‘ where host=‘localhost‘;
    update user set user=‘remoteadmin‘ where host=‘%‘;
    最后的user表看起來像是這個樣子
    mysql> select host,user,password,Delete_priv from user;
    +-----------+-------------+------------------+-------------+
    | host      | user        | password         | Delete_priv 
    |+-----------+-------------+------------------+-------------+
    | localhost | localadmin  | 67457e226a1a15bd | Y           

     %         | remoteadmin | 77c590fa148bc9fb | Y           
    |+-----------+-------------+------------------+-------------+
    更為詳細的資料,請去參考晏子的《MySQL中文參考手冊》。隨便那都有下
    二.缺乏日志能力
    mysql安裝完成以后,會在%SystemRoot%目錄下產生my.ini的設置文件
    默認的內容如下:
    ——————————————————————————————
    basedir=C:/mysql
    #bind-address=192.168.0.1
    datadir=C:/mysql/data
    #language=C:/mysql/share/your language directory
    #slow query log#=
    #tmpdir#=
    #port=3306
    #set-variable=key_buffer=16M
    [WinMySQLadmin]
    Server=C:/mysql/bin/mysqld-nt.exe
    user=root
    password=root
    ———————————————————————————————
    注意log#=這個
    它沒有被定義,且被注銷掉了。
    更改為一個適合的路徑,比如:
    log=c:/mysql/logs/mysql.log
    三.my.ini文件泄露口令
    我們看到my.ini最后,有這兩句
    user=root
    password=root
    如果,你安裝完成時,使用了mysql所提供的快速設置功能,(較新的版本)你的帳號和口令將被寫到my.ini文件中。
    這也是mysql寫到啟動組里的winmysqladmin.exe工具,運行時需要讀取的。它提供的mysql服務
    的一些監視功能。這樣winmysqladmin.exe才能獲得mysql服務的狀態信息。
    其實,這個也不算漏洞,我們看看my.ini默認的權限,它可以被user組用戶讀取。
    從而導致口令被泄露
    解決方法:
    從新設定my.ini文件的權限.
    從新設定帳號及口令
    不使用快速設置
    四.服務默認被綁定全部的網絡接口上
    服務被綁定到了所有的網絡接口上,比如,你只需要一個運行在內網的mysql服務,但是你的機器有
    外網的接口,mysql也會被綁定上,從而帶來一些不必要的麻煩和威脅。
    在my.ini里的這句
    #bind-address=192.168.0.1
    它默認被注銷掉了
    應該打開它
    如果,只是本地使用,更改為
    bind-address=127.0.0.1
    如果是其它情況,應該選者一個合適的網絡接口
    五.默認安裝路徑下的mysql目錄權限
    mysql默認的安裝路徑為c:\mysql,基本上都難得改,要改的話也是麻煩,還要去改my.ini。
    但,這樣就有個問題
    通常c:\的權限是everyone組-所有的權限。這是默認的,由于繼承性,導致mysql下的data目錄
    也是everyone組-所有的權限。導致被隨意訪問、讀取、刪除,可能泄露和破壞數據。
    更改mysql目錄到一個合適,安全的訪問權限。
    over...

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>