冷雪 第27期

  瀏覽網站或BBS的時候,經常會有管理員登錄頁面存在,這是為了方便管理而設置的。可是在管理登錄頁面中存在一個很嚴重的漏洞──如果賬號和密碼中" />

‘or”=’漏洞原理

來源:本站原創 安全技術 超過759 views圍觀 0條評論

or”=’漏洞原理


作者: 輝煌木馬專賣店    來源: www.shaoye.com.cn    發布日期:2006-3-5   點擊次數: 73

OR“=’漏洞,不容忽視

冷雪 第27期

  瀏覽網站或BBS的時候,經常會有管理員登錄頁面存在,這是為了方便管理而設置的。可是在管理登錄頁面中存在一個很嚴重的漏洞──如果賬號和密碼中都輸入’OR”=’,即可直接進入管理頁面。

  筆者做了一個測試,用Google搜索“管理員登錄”,在搜索結果中隨機選取了20個網頁(包括一些著名品牌的電腦網站、大型商場網站、學校網站、個人網站、BBS等),利用’OR”=’漏洞測試后發現,其中有12個網頁能成功獲得管理員權限。網站管理員的重要性想必大家也知道,他們往往能夠主宰網站的命運。是個人網站、BBS等小網站還好,管理員權限至多是添加或刪除幾個文件或帖子;可如果是著名品牌電腦網站或大型商場網站的管理員,他們則可以更改機型、配置、價格、進貨、出貨等重要數據。是不是很恐怖?

  現在我們就來分析一下神秘的’OR”=’漏洞

  user=request.form(“user”)

  pass=request.form(“pass”)

  …….

  sql=”select * from guestbook where user='”&user&”‘ and pass='”&pass&”‘” (*)

  如果把’OR”=’引入(*)中,則user和pass中就會得到這樣的代碼:

  sql=”select * from guestbook where user=”or“=” and pass=”or“=””

  因為”=”的值是真,那么user='”&user&”‘ and pass='”&pass&”‘的值也絕對是真,所以登錄能夠成功。

  防范指南
  解決這個問題的方法也很簡單,將(*)改成如下的語句即可:

  sql=”select * from guestbook where user='”&user&”‘”

  …….

  if pass=rs(“pass”)

  then 就打開管理網頁

  else

  就打開身份驗證網頁

  end if

  這樣就可以解決’OR”=’漏洞的問題。

  如果你熟悉Javascript,也可以用Javascript來限制用戶名和密碼中出現的特殊字符,一旦出現“’”就提示出錯,這也是個不錯的方法。

  最后筆者還想提醒一下各位站長,’OR”=’問題絕對不容忽視!

文章出自:CCIE那點事 http://www.qdxgqk.live/ 版權所有。本站文章除注明出處外,皆為作者原創文章,可自由引用,但請注明來源。 禁止全文轉載。
本文鏈接:http://www.qdxgqk.live/?p=399轉載請注明轉自CCIE那點事
如果喜歡:點此訂閱本站
  • 相關文章
  • 為您推薦
  • 各種觀點
?
暫時還木有人評論,坐等沙發!
發表評論

您必須 [ 登錄 ] 才能發表留言!

?
?
萌宠夺宝游戏