衔接上文,进一步对SQL注入less-1进行禁止information的操作,上文连接如下:
SQL注入less-1-CSDN博客
一、对less-1进行编辑
增加一段代码,作用是禁止information字段
二、进行检查
可以看到代码已经生效,禁止用information字段
三、查询方法
我们目前直到的只有数据库名为security,表名和列名都不知道,想要查询到想要的数据,就必须要直到相应的表名及列名,那么该如何去获得它们呢?既然information被禁止了,那我们就去想办法替代它
1、替代information
替代information这个数据库,有官方自带的sys和mysql
在它们中有很多种方法查到表名,我只说明两种,一个是sys的 schema_auto_increment_columns
另一个是mysql的innodb_table_stats
sys.schema_auto_increment_columns查询
desc一下这个表可以发现有table_name、table_schema
那么我们就可以进项查询:
select table_name from schema_auto_increment_columns where table_schema = 'security';
这样就获取到了想要的users表名
mysql.innodb_table_stats的查询
select table_name from innodb_table_stats where database_name = 'security';
也可以找到如上图所示的界面,有时可能查不到,所以第一种方法更好一些
以上两种方法,都能查到表名,但却无法查到列名,这样依无法获取我们想要的数据
2、无列名注入
利用join-using爆列名
join联表查询
可以看出该命令已经爆出了users的第一个列名,然后再使用using排除该列名继续查询,又可得出下一个列名,以此类推
通过此方法我们可以获得想要的列名后,那么也就可以拿到想要的数据了