我們都知道後台登陸驗證一般的方式都是將使用者在登入口輸入的賬號密碼拿去與資料庫中的記錄做驗證,並且要求輸入的賬號密碼要等於資料庫中某條記錄的賬號密碼,驗證通過則程式就會給使用者乙個sssion,然後進入後台,否則就返回到登陸口。而對於'or'='or'漏洞,我們先來看以下**:
pwd = request.form("pwd") 獲取使用者輸入的密碼,再把值賦給pwd
name = request.form("name")獲取使用者輸入的使用者名稱再把值賦給name
都沒有進行任何過濾
set rs =server.createobject("adodb.connection")
sql = "select * from manage_user whereusername='" & name & "' andpassword='"&encrypt(pwd)&"'" 將使用者名稱和密碼放入查詢語句中查詢資料庫,
set rs = conn.execute(sql)執行sql語句,執行後並得到rs物件結果,「真」或「假」
if not rs.eof = true then 如果是真則執行以下**
session("name") = rs("username")將username的屬性賦給name的session自定義變數
session("pwd") = rs("password")將password的屬性賦給pwd的session自定義變數
response.redirect("manage.asp")了利用response物件的redirect方法重定向manage.asp
else 否則執行以下**
response.redirect"loginsb.asp?msg=您輸入了錯誤的帳號或口令,請再次輸入!"
end if
%>
以上就是乙個典型的'or'='or'漏洞例子,針對以上例子我們只需要在使用者名稱處提交'or'='or',這樣就使得sql語句變成:
select* from manage_user where username='』or『='or'' and password='123456'。((假or真
or假and(真
/假))
=真)執行後得到rs物件的結果為真,這樣就能順利的進入後台了。
為了避免出現這個漏洞,現在基本上的後台驗證都不會使用這類方式,而是取得使用者輸入的賬號和密碼,在sql中先將使用者名稱與資料庫中的記錄做對比,若資料庫中某條記錄的使用者名稱等於使用者輸入的使用者名稱,則取出該條記錄中的密碼,然後再與使用者輸入的密碼對比,正確就通過,不正確就返回。
其他的繞過字典:
繞過字典附件,使用burpsuite爆破後台加字典即可;
ecshop後台登入繞過
這個習科上已經發過了,我這裡發一段跟習科不同的吧。這是習科發布的方法,這裡做個記錄。admin privilege.php if empty ec salt else 省略 if isset post remember hashcode hash code db getone select valu...
DVR登入繞過漏洞
背景說明 個人方面沒什麼意圖,主要之前有一次要做個賦能,順口講了一下,其實很簡單,就簡單記錄一下。此漏洞通過修改 cookie uid admin 以此訪問特定dvr的控制面板,並可以返回此裝置的明文管理員憑證。實驗過程 fofa搜尋特徵 longin.rsp 利用方式 curl http url ...
繞過密碼登入 分享規則!繞過密碼登入直接進入後台
我們都知道後台登陸驗證一般的方式都是將使用者在登入口輸入的賬號密碼拿去與資料庫中的記錄做驗證,並且要求輸入的賬號密碼要等於資料庫中某條記錄的賬號密碼,驗證通過則程式就會給使用者乙個sssion,然後進入後台,否則就返回到登陸口。而對於 or or 漏洞,我們先來看以下 獲取使用者輸入的密碼,再把值賦...