qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          數據庫與服務器安全選項拾遺

           之前總結過sql注入的一些特征。這里總結一下數據庫的內部特征。和安全選項。
            MySQL
            權限劃分
            mysql用戶的權限,大體來說比較簡單,分別存儲于這幾個表中
          mysql.User,mysql.db,mysql.Host,mysql.table_priv,mysql.column_priv
            因為存取頻繁,所以這幾個表的數據存在內存中,更新數據后使用,語句來進行內存更新
            當然執行這個命令需要reload權限
          FLUSH PRIVILEGES
            用戶登錄時需檢查,mysql.user中的user host pass 三個字段,如果允許任何主機外部鏈接可以吧host設置成%
            用戶登錄通過后,mysql會自上而下的檢查用戶權限,首先在mysql.user中讀取對應用戶的權限。
            其中關于用戶權限的字段大概有這些,除去一些常規的不表,比較重要的是
            file_priv 這個影響到了mysql讀寫文件的利用
            grant_priv 的用戶可以吧自己擁有的權限付給其他用戶
            process_priv 的用戶可以通過SHOW PROCESSLIST查詢所用用戶的查詢進程并kill,普通用戶只可以查詢自己的
            super_priv的用戶允許改變set變量,修改用戶查詢
          Select_priv
          Insert_priv
          Update_priv
          Delete_priv
          Create_priv
          Drop_priv
          Reload_priv
          Shutdown_priv
          Process_priv
          File_priv
          Grant_priv
          References_priv
          Index_priv
          Alter_priv
          Show_db_priv
          Super_priv
          Create_tmp_table_priv
          Lock_tables_priv
          Execute_priv
          Repl_slave_priv
          Repl_client_priv
          Create_view_priv
          Show_view_priv
          Create_routine_priv
          Alter_routine_priv
          Create_user_priv
           另外 super file 等管理權限后面不能加數據庫,只能以這種形式授權
            grant super on *.* to xxx@xxxxx;
            而select等增刪改查的權限,可以指定數據庫來添加
            grant select on pyt.* to ‘p1′@’localhost’;
            其中最低的權限是usage權限,相當于只有一個連接的權限。使用create user 建立的用戶,默認為usage權限
            但是此權限貌似有information_schema表的select權限,其中host為允許連接的主機名
            CREATE USER 'username'@'host' IDENTIFIED BY 'password'
            查詢一個用戶的權限只需要
            CREATE USER 'username'@'host' IDENTIFIED BY 'password'
            安全選項
            mysql啟動的時候,也有一些安全選項,可以起到提高mysql安全性的功能
            具體可以看官方文檔
            http://dev.mysql.com/doc/refman/5.5/en/server-options.html#option_mysqld_allow-suspicious-udfs
            死四個安全選項
            http://database.51cto.com/art/201005/199939.htm
            提高安全設置
            http://www.mianwww.com/html/2009/02/2926.html
            六個安全選項
            http://news.zdnet.com.cn/zdnetnews/2008/0124/718026.shtml
            關于安全的文檔
            http://dev.mysql.com/doc/refman/5.1/zh/database-administration.html
            PHP
            安全選項
            Safe Mode
            這個選項也是php常用的安全選項,開啟他之后服務器會對文件讀寫,執行文件,改變php環境變量,文件包含等功能進行比較嚴格的限制。
            文件讀寫
            開啟SafeMode之后,如果進行讀寫文件操作PHP檢查當前用戶是否是文件所有者,如果php被分配到一個比較低權限的賬戶,讀寫文件會比較困難。
            以下這些函數會受到影響
            chdir , move_uploaded_file, chgrp, parse_ini_file, chown, rmdir, copy, rename, fopen, require, highlight_file, show_source, include, symlink, link, touch, mkdir, unlink
            運行文件執行系統命令
            在執行系統命令的時候,只有safe_mode_exec_dir這個文件夾下的程序可以被執行。執行的指令會發送給escapeshellcmd進行過濾。
            受影響的函數
            exec, shell_exec, passthru, system, popen
            另外,重音符也會被禁止。
            環境變量
            改變環境變量的函數也會被禁止
            putenv,set_time_limit, set_include_path
            如果想設置安全模式下可以改變的環境變量,需要這樣safe_mode_allowed_env_vars
            文件包含
            文件包含的話同樣也是需要safe_mode_include_dir來設定目錄
            expose_php
            這個安全選項,會防止response包中泄露PHP版本信息,比如包頭信息中通常會包含
            Server: Apache/1.3.33 (Unix) PHP/5.0.3 mod_ssl/2.8.16
            OpenSSL/0.9.7c
            但如果expose_php開啟的話,PHP的版本信息將不包含在上面的頭信息里。
            AddType application/x-httpd
            有的時候你可能會覺得php的后綴不過癮,那么可以在httpd.conf 中找到 AddTYpe這行,添加可供解析的后綴名。
            AddType application/x-httpd .html .htm .txt .asp
            這種方法也可以用來留后門。
            open_basedir
            這個選項可以規定用戶只可以訪問規定目錄內的文件,這個選項并不和safe mode沖突
            disable_functions
            這個選項可以用來禁用一些函數
            disable_functions = eval
            當然,同樣的你能夠使用 disable_classes 選項來關閉對一些類的訪問。
            magic_quotes_gpc
            大家常說的加引號的選項。
            display_errors
            大家常說的顯錯,如果被關閉的話,那就只能盲注啦~。也可以通過log_errors設置輸出到文件。

          posted on 2013-12-27 11:04 順其自然EVO 閱讀(204) 評論(0)  編輯  收藏 所屬分類: 數據庫

          <2013年12月>
          24252627282930
          1234567
          891011121314
          15161718192021
          22232425262728
          2930311234

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 湟源县| 长泰县| 德保县| 昂仁县| 临邑县| 肇源县| 阳西县| 白银市| 吕梁市| 南靖县| 灌南县| 郑州市| 舒城县| 岱山县| 福鼎市| 辛集市| 廊坊市| 新和县| 措美县| 岳池县| 济宁市| 外汇| 庆阳市| 宁都县| 临沧市| 滨州市| 班戈县| 如皋市| 南雄市| 河北区| 湖口县| 青神县| 丹棱县| 班玛县| 四子王旗| 吉安县| 醴陵市| 合山市| 郁南县| 商河县| 顺昌县|