手工注入——access手工注入實戰和分析


前言

今天進行了access手工注入,下面是我的實戰過程和總結。

實戰環境使用的是墨者學院的在線靶場。下面咱們直接進入主題。

判斷注入點

通過‘ 或者 and 1=1 和 and 1=2 是否報錯,如下圖。

接下來咱們輸入 and 1=2 發現報錯了,說明存在注入點。如下圖。

猜數據庫表名

在access數據庫中,打開里面直接就是表,所以我們只能猜表名,通過這條語句 and exists (select * from 表名)常見的一些表名為 admins users administrator,adminadminsadmin_useradmin_usradmin_msgadmin_loginuserusernamemanagermsg_usermsg_loginuseradmin等。通過猜測,我們查到 存在admin這個表,這里用到的原理是,如果存在正常顯示,不存在就報錯,如下圖。

猜測表里有幾個字段

通過order by 語句,小於輸出的數字正常顯示,大於輸出的數字報錯。我們猜出為四個字段。如下圖。

 

猜測字段

通過這條語句 and exists (select 字段 from admin)常見的字段有 username password pass passwd user_name 等

如果對方的數據庫字段較多,咱們又猜不出來,並且有回顯位置,可以嘗試偏移注入。這里通過直接猜測就猜出來了,如下圖。

 

 

根據圖片的內容我們,我們猜測出的兩個字段為,username ,passwd ,根據字段名字我們就知道里面存放的為賬號和密碼。

聯合查詢爆出賬號和密碼

通過這條語句 union select 1,2,3,4 from admin 我們知道了,2,3,這兩個位置回顯到頁面上,這就是我們需要的。如下圖。

 

接下來,我們把之前查找出來的 字段 替換到2,3 兩個位置,語句為 union select 1,username,passwd,4 from admin 結果為下圖,爆出了賬號密碼。

 

手工注入總結

1、 先判斷有沒有注入點

2、 參數后面加 and exists(select*from admin) 猜表名  返回正常頁面表示存在(admin)

3、 參數后面加 and exists(select username from admin)猜(admin)表中是否存在列名(username) 返回正常頁面表示存在

4、 參數后面加 and exists(select passwd from admin)猜(admin)表中是否存在列名(passwd) 返回正常頁面表示存在

5、 判斷字段數 參數后面加 order by 4 (判斷字段數為4)

6、 判斷回顯  參數后面加 union select 1,2,3,4 from admin

7、 爆出列名的信息 參數后面加 union select 1,username,passwd,4 from admin

8、獲取到賬號密碼,手工注入結束。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM