冷雪 第27期

  浏览网站或BBS的时候,经常会有管理员登录页面存在,这是为了方便管理而设置的。可是在管理登录页面中存在一个很严重的漏洞──如果账号和密码中" />

‘or”=’漏洞原理

来源:本站原创 安全技术 超过659 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.jdccie.com/ 版权所有。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。 禁止全文转载。
本文链接:http://www.jdccie.com/?p=399转载请注明转自CCIE那点事
如果喜欢:点此订阅本站
  • 相关文章
  • 为您推荐
  • 各种观点

暂时还木有人评论,坐等沙发!
发表评论

您必须 [ 登录 ] 才能发表留言!