另类天堂精品一区_国产成人综合在线视频_日本欧美国产区二_一级a毛片美女精品大片_100款禁用黄台网站小黄鸭_2018天天躁夜夜躁狠狠_先锋xfplay色资在线源网站_亚洲中文字幕日韩经典空组_成人片AV免费看自慰_蜜桃臀v福日本福利一区

歡迎光臨陜西驪山低速風機動力制造有限公司官網!

全國咨詢熱線:

400-8888-888

交換機再接一個交換機怎么設置_交換機再接一個交換機怎么設置密碼

所屬分類:新聞資訊 發(fā)布日期:2024-08-25 瀏覽次數:10

  一般用戶在登陸時交換機再接一個交換機怎么設置,系統(tǒng)會要求輸入用戶名及密碼,然后將這些數據傳輸到指定頁,進行驗證,大致的代碼如下交換機再接一個交換機怎么設置

  Set Conn= Server.CreateObject("ADODB.Connection") '定義連接數據庫的對象

  Const AccessFile="jmdcw.mdb" '數據庫地址

  Conn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(AccessFile) '連接到數據庫

  Conn.Open '打開數據庫

  ....................

 交換機再接一個交換機怎么設置_交換機再接一個交換機怎么設置密碼

  name=request("name") '得到所提交的用戶名

  pass=request("pass") '得到所提交來的密碼

  ............

  Set Jmdcw=Server.CreateObject("ADODB.RecordSet") '定義操作數據庫的對象

  SQL="SELECT username,userpass FROM User WHERE username='"&name&"' AND userpass='"&pass&"'" 'SQL語句

  Jmdcw.Open SQL,Conn,1,1 '執(zhí)行查詢

  ......

  If Jmdcw.EOF AND Jmdcw.BOF Then '如果沒有查詢到

  response.redirect ".html" '顯示錯誤頁

  end if

  '如果正確,就繼續(xù)執(zhí)行。

  ..........

  以上就是一段簡單的用戶驗證代碼,當注入漏洞被廣泛發(fā)掘之后,類似這樣的漏洞就越來越少了,但少并不表示程序員在寫代碼時已經具備了防范意識,無意之中還是會出現(xiàn)這樣或那樣的漏洞。OK,書歸正傳,先來測試一下上面的代碼。輸入的用戶名是:jmdcw,密碼是:123456。(典型的弱口令密碼,哈哈),這樣SQL語句就是:

  select username,userpass from user where username='jmdcw' and userpass='123456'

  程序會查詢user表中是否有jmdcw用戶,并且該用戶的密碼是否為123456。如果username='jmdcw'的結果為真,userpass='123456'的結果也為真,那么“真 And 真 ”的結果就是真,驗證通過。

  當然,如果用戶名和密碼其中之一的結果為假,“真 And 假 ”的結果就是假,當然“ 假 And 假 ”的結果也是假,呵呵。

 交換機再接一個交換機怎么設置_交換機再接一個交換機怎么設置密碼

  沒有用戶名或密碼怎么進入交換機再接一個交換機怎么設置?試一下'or''='吧,在提交用戶名處輸入 jmdcw'or''=',這樣的SQL語句就是

  select username,userpass from user where username='jmdcw'or''='' and userpass='12345678'

  在邏輯表達式中,AND的優(yōu)先級要高于OR,所以語句會先對 “''='' and userpass='12345678'” 進行判斷,雖然 ''='' 為真,但密碼為假,所以結果為假,但因為交換機再接一個交換機怎么設置我們加入了OR連接符,這樣,雖然后面的結果為假,但username的結果為真,所以也一樣能進入這個用戶的后臺。

  但如果不知道用戶的名稱,那么就要在輸入的密碼后也加入一個'or''=',這樣,SQL語句就是

  select username,userpass from user where username='jmdcw11'or''='' and userpass='12345678'or''=''

  在執(zhí)行and語句,''='' and userpass='12345678'的結果為假,然后是 'jmdcw11'or假 ,結果為假,再接下來是:假or ''='',這個結果就是真了。

  但現(xiàn)在的密碼都用MD5加密,對提交來的密碼在進入SQL語句之前,先用MD5進行了轉換,這樣,就算在密碼后加入了'or''=',也發(fā)揮不了作用。對于密碼采用md5加密的,不妨在用戶名處再加入一個or''='',也 就是在用戶名處輸入:jmdcw'or''=''or''=',這樣的SQL 語句就是:

  select username,userpass from user where username='jmdcw11'or''=''or''='' and userpass='12345678'

  先執(zhí)行and語句,結果為假,然后是username='jmdcw11'or''='',結果為真,接下來是:真or假,結果還是真,這樣又繞過了驗證。

  說到這兒,我忽然想起,在文章開頭所提到的網站,其密碼也是用md5加密的,并且我也不知道任何一個用戶名,也只用了一個or語句,為什么卻進入了呢?思來思去,莫不是SQL語句中的用戶與密碼的位置有所不同,其的SQL語句是這樣的:

  select username,userpass from user where WHERE userpass='"&pass&"'" and username='"&name&"',

  密碼在前面,用戶在后面,這樣,當我在用戶名處輸入:jm'or''='后,其語句就變成了

  select username,userpass from user where WHERE userpass='123456" and username='jm'or''=''

  按照優(yōu)先級,先運算ANd語句,結果為假,然后是OR語句,假or''='',結果就是真了??磥泶a中的位置發(fā)生變化也能演繹成一種漏洞。

  上面所提到的方法主要是針對于ACCESS數據庫,但如果程序所對應的數據庫是SQL,那危害就大很了,先不要說別的,還是說一下登陸的事情,直接用:

  存在的用戶名';--

  這個可以不用密碼就登陸到指定的用戶之中,如果不知道呢:就用:

  任意名稱'or''='';--

  這樣所進入的會是第一個用戶,很有可能是管理員的用戶之中.

  如何防止這種漏洞呢?很簡單,就是在接收字符的語句中加入replace過濾語句,比如name就是:

  name=replace(request("name"),"'","")

  將'過濾為空。密碼過濾的方法也類似。當然,這是簡單的過濾方法,還有更多復雜的。比如過濾一些特殊字符,空格、chr(0)、%、等一些字符,防止寫入XSS代碼。

評論列表

還沒有評論,快來說點什么吧~

發(fā)表評論

真誠期待與您的合作

獲取報價·了解更多業(yè)務·7*24小時專業(yè)服務

聯(lián)系我們