之前总结过sql注入的一些特征。这里总结一下数据库的内部特征。和安全选项。
权限划分
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 |