如果不出意外的话,本来该显示的是指字段列数不一致,因为Union函数本身的特殊性。我们继续构造如下的语法:
union select 1,2 from userinfo
union select 1,2,3 from userinfo
一直到union select 1,2,3 from userinfo才返回正常的页面,说明这里就要列三个字段了,并且发现刚才错误的地方现在显示为1,也就是说它可以用来显示我们想要知道的数据。见图10:

图10 我们构造语法:union select usr,2,3 from userinfo会显示账号的信息,如图11:

图11 我们构造语法:union select pwd,2,3 from userinfo则会显示出密码的信息,如图12:

图12 当我们用这个账号密码登录后台的时候,意外的发现出错了,如图13:

图13 读者朋友们知道什么原因吗?对,我们要看下数据库的构造,userinfo表里面有个userclassid字段,表示他们所对应的权限,而userclass表很明确的告诉了我们什么ID对应着什么权限,这里我们要进管理后台,当然得要
系统管理员的账号密码。数据库表如图14

图14 既然知道了这些,所以我们在构造Union查询的时候要加个条件where userclassid=1,即我们要得到账号信息就构造语法:union select usr,2,3 from userinfo where userclassid=1,得到的账号为fang,见图15:

图15

发表评论