网站地图    收藏   

主页 > 后端 > 网站安全 >

Mysql引发的血案 - 网站安全 - 自学php

来源:自学PHP网    时间:2015-04-17 13:02 作者: 阅读:

[导读] 要搞到mysql账号和密码的各种猥琐的办法,比如任意文件下载,弱口令之类的,这篇水文的重点是得到mysql账号密码之后提权或者得到webshell的几个办法,网上关于mysql提权的办法最多的就...

要搞到mysql账号和密码的各种猥琐的办法,比如任意文件下载,弱口令之类的,这篇水文的重点是得到mysql账号密码之后提权或者得到webshell的几个办法,网上关于mysql提权的办法最多的就是写vbs什么的到启动项目录,个人感觉这种方式隐蔽性太差,下面是几个提到不多的方法。

1.     无websehll udf直接提权
   这个方法网上介绍的比较多,也不是我想说的重点,具体的方法就不多说,网上有详细的教程,高权限的mysql可以直接执行一些系统命令,不 过一个很悲剧的就是好多mysql里面默认是木有plugin这个目录的,所以对于5.1以上版本的mysql用这个办法是需要有新建目录的权限或者webshell。

2.利用myql  获得webshell

如果上面的那个办法没有成功,比如那个目录不存在或者udf.dll被干掉了,那另一个思路就是获得webshell。Mysql账号的权限如过有select into outfile 或者into dumpfile权限,就可以利用这个写webshell了,实现的前提是必须知道web目录的路径,这个就可以去目标机上找一些可以 爆路径的漏洞,比如phpmyadmin的/phpmyadmin/themes/darkblue_orange/layout.inc.php这个访问很大概率会爆出路径:
\
当账号有load_file权限的时候可以读取一下apache的配置文件,这个对于linux比较方便,配置文件可以根据固定的那几个去试,在mysql里执行:



www.2cto.com createtable a (cmd text) ;
insertinto a value (load_file(‘/etc/http/conf/httpd.conf’));
然后去表a里找下就可以找到配置文件的信息了,如果是windows平台就要更多靠人品了,因为apache的安装目录是不知道在啥地方的,这个目录就要靠收集到的信息来猜一下了,收集的信息可以是服务器上的一些其他软件的安装目录或者读取某些固定位置的配置文件,于是就想到用方法1中的一个办法得到mysql的目录

如果是windows平台就要更多靠人品了,因为apache的安装目录是不知道在啥地方的,这个目录就要靠收集到的信息来猜一下了,收集的信息可以是服务器上的一些其他软件的安装目录或者读取某些固定位置的配置文件,于是就想到先找mysql的目录信息,当在mysql里执行SHOW VARIABLES LIKE ‘%plugin%’;的时候,


\

出现了上面的这一坨那么就要恭喜了,这种情况下根据mysql的目录位置知道了服务器史用wamp套件搭建的,那么要获得web目录就容易多了,我们去读取wamp配置文件去。读取在wamp目录下的wampmanager.conf这个文件,就可以获得到apache的版本号,本地搭建wamp后发现这个版本的wamp中apache的目录是apache+版本号这个方式命名的:

Mysql引发的血案

\

所以知道版本号后构造目录读取apache的httpd.conf 就能找到web路径了,这时候就可以用我们熟知的select into dumpfile/outfile去写一个webshell了。

 上面说的这几种办法都是有一个致命的弱点的,那就是必须连到mysql,mysql的默认配置貌似是只允许本机连接的,有的程序猿为了管理方便可能改了配置或者安装phpmyadmin之类的东西,当攻击者从某个漏洞获得到一定的信息之后利用这些就可以进一步提升权限,当安装了phpmyadmin之后一定要记得把目录改一下,如果以上设置都做到了,那么即使得到了密码也是没用的

作者: safejie@163.com

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论