不需要查询字段的union select注入

这篇文章是来自安恒七月赛DASCTFweb类的sqli,看了Y1ng师傅的wp引起的思考。
进入正题
我们知道当我们使用union select 1,2,3 from test
查询的时候需要满足和前面表的字段数相同。
而且如果我们需要进一步的查询数据就需要获得字段名,通过INFORMATION_SCHEMA.COLUMNS

但是我们可不可以直接用union select * from users来查询数据
(假如users 的字段和前面表的字段一样)
不需要查询字段的union select注入_第1张图片
结果发现报错,不能使用。

那么我们想一想,既然相同字段不得行,那我们试一试如果字段数目,比前面表字段少。之后在添加到相同的字段。
会不会成功?!
(这里我用test表来实现)
不需要查询字段的union select注入_第2张图片

union select *,1 from test

不需要查询字段的union select注入_第3张图片
发现成功!!!

总结:
当我们使用union select 注入的时候,要查询表的数据的时候,如果要查询的表字段数目比前面的少。
然后我们就可以直接使用union select * ... from test
… :表示需要添加的字段满足字段数目相同。

你可能感兴趣的:(SQL注入)