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那么简单处理!