危险漫步博客
新鲜的“黑客思维”就是从全新的角度看待黑客技术,从更高的层面去思考;专注于黑客精神及技术交流分享的独立博客。
文章2306 浏览20614101

利用MySql注入点直接提权

可能MSSQL下的sa权限提权,大家都知道,那么mysql下的提权呢?这次危险漫步给大家带来的就是通过mysql注入点直接提权。

危险漫步提供的这种方法相对来说条件较为苛刻,不过在这就是一个思路,可能在你入侵受阻的时候真的能帮到你。闲话少说,我们先来看下这个注入点的要求:

1.magic_quote为off

2.可以写文件,最好有任意目录的写权限

3.最好有读文件的权限,但如果真没有也行

4.注入点需要是POST方式的(这样可以一次post128KB大小的文件)

为什么需要这么几个条件,后面我会详细的说,先说下我的思路,大家都知道,mysql也是可以写文件的,但大家可能更多的是用在写一个shell出来,其实我们也可以考虑写入一个其他类型的文件,比如exe、dll,这里我的思路就是通过dll方式来提权。先介绍一个Rices牛写的工具:TOOls Lpk Sethc。简单的说,通过该工具生成的dll文件,放在一个有exe文件的目录,那么等这个exe文件执行后,系统就被安装上了sethc后门,关于该工具的具体用法,叉子们可以百度一下。我就是想通过mysql的dumpfile方式,将这个lpk.dll文件写到一个存在exe的目录,等这个exe执行后,我们就提权成功了。这就是为什么我们需要magic_quote_gpc为OFF,因为这样我们才可以写文件,而可以写的目录越多那么成功率自然越大。为什么要有读取权限?因为我们并不知道目标网站的结构,也不知道哪里存在exe文件,那么我们可以先读取一些比较常见程序的安装目录下的敏感文件,比如说Navicat的localization里的default.loc文件,如果我们读取到了这个文件,那么基本可以确定了Navicat的目录,再写入dll文件的话,成功的概率会更高。为什么需要POST方式呢?因为这个dll虽然不大,但远远超过了GET的大小,所以需要是POST方式的注入点。好了,基本情况介绍到这,跟危险漫步一起开始吧。首先本地构造一个注入点,这个我就不说了。我们首先要做的是得到这个dll文件十六进制形式。这个我们可以在本地完成,我使用navicat配合mysql,先打开navic at,连接上mysql,打开任意一个数据库,然后选择“查询”。

接着我们输入命令:"select hex(load_file('f:/lpk.dll') into outfile 'f:/xxoo.txt';"其中f:/lpk.dLl就是dll文件的位置,后面则是十六进制方式输出的文件。直接完毕后,我们到F盘下看看,果然出现一个xxoo的文本文件,大小为118KB,虽然增大了不少但还在

安全范围( 128KB)内。OK,我们继续,接下来就是到注入点中了。

放到穿山甲中试试,跑出来的结果,POST类型的注入,maglc_quote_gpc为offo我们先来看看有多少个字段,我们可以通过order by的方式得到,像我这种比较懒的就直接看源码了,其中有这句:“$sql=”select username,password from admin where id2$idI;”这么说字段数是2。接下来就是注入了,这里我们要写个简单的html文件来提交,毕竟那个十六进制字符的文件有118KB呀。

Unhex里为lpk的十六进制,大家请注意,在unhex后面,还有两个单引号,这是为了不产生多余的字符,破坏了dll文件。接着我们点击提交,然后去该目录查看,发现lpk已经安静的在那躺着了。这样,我们再运行一下Navicat,不需要任何操作。我们再调出sethc按下A+B,然后输入123后。到此,我们的后门就安装成功了。这种方式的提权需要的条件较为苛刻,还需要一点运气,不过入侵就是这样,多学一种方法在入侵的时候就多一条路,并且如果我们在平时可以多收集一些常用程序的目录,那么再入侵的时候这种方法成功的概率也会更高,文章到这就结束了,我是危险漫步,你学会了吗?